流利的用法
使用自然语言
函数调用应该接近自然英语。
例:
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() // in place sorting
list.add(value) // mutates list
set.formUnion(anotherSet) // set is now the union of set and anotherSet
非突变功能:
let sortedArray = array.sorted() // out of place sorting
let union = set.union(anotherSet) // union is now the union of set and another set
布尔函数或变量
涉及布尔值的陈述应理解为断言。
例:
set.isEmpty
line.intersects(anotherLine)
命名协议
- 应该使用名词来命名描述某些内容的协议。
- 描述功能的协议应该以
-able
,-ible
或-ing
作为后缀。
例:
Collection // describes that something is a collection
ProgressReporting // describes that something has the capability of reporting progress
Equatable // describes that something has the capability of being equal to something
类型和属性
类型,变量和属性应该读作名词。
例:
let factory = ...
let list = [1, 2, 3, 4]