流利的用法

使用自然語言

函式呼叫應該接近自然英語。

例:

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]