流利的用法
使用自然語言
函式呼叫應該接近自然英語。
例:
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]