Swift 流畅的使用

示例

使用自然语言

函数调用应接近自然英语。

例:

list.insert(element, at: index)

代替

list.insert(element, position: index)

命名工厂方法

工厂方法应以前缀make开头。

例:

factory.makeObject()

初始化程序和工厂方法中的命名参数

在命名工厂方法或初始化程序时,不应涉及第一个参数的名称。

例:

factory.makeObject(key: value)

代替:

factory.makeObject(havingProperty: value)

根据副作用命名

  • 具有副作用的功能(变异功能)应使用以开头的动词或名词命名form-。

  • 没有副作用的函数(非变异函数)应使用带有后缀-ing或的名词或动词命名-ed。

示例:突变函数:

print(value)
array.sort()                 // 就地分拣
list.add(value)              // 变异清单
set.formUnion(anotherSet)    // set现在是set和anotherSet的并集

非变异函数:

let sortedArray = array.sorted()     // 异地排序
let union = set.union(anotherSet)    // 联合现在是集合和另一个集合的联合

布尔函数或变量

涉及布尔值的语句应视为断言。

例:

set.isEmpty
line.intersects(anotherLine)

命名协议

  • 描述什么东西的协议应该使用名词来命名。

  • 描述能力的协议应该有-able,-ible或-ing作为后缀。

例:

Collection        // 描述某物是一个集合
ProgressReporting // 描述某事物具有报告进度的能力
Equatable         // 描述某事物具有与某事物相等的能力

类型和属性

类型,变量和属性应读作名词。

例:

let factory = ...
let list = [1, 2, 3, 4]