清除用法

避免歧義

類,結構,函式和變數的名稱應該避免歧義。

例:

extension List {
    public mutating func remove(at position: Index) -> Element {
        // implementation
    }
}

對此函式的函式呼叫將如下所示:

list.remove(at: 42)

這樣,避免了歧義。如果函式呼叫只是 list.remove(42),那麼將不清楚,如果將刪除等於 42 的 Element 或者如果將刪除索引 42 處的 Element。

避免冗餘

函式名稱不應包含冗餘資訊。

一個糟糕的例子是:

extension List {
    public mutating func removeElement(element: Element) -> Element? {
        // implementation
    }
}

對函式的呼叫可能看起來像 list.removeElement(someObject)。變數 someObject 已經指示刪除了一個元素。函式簽名最好如下所示:

extension List {
    public mutating func remove(_ member: Element) -> Element? {
        // implementation
    }
}

對此函式的呼叫如下所示:list.remove(someObject)

根據角色命名變數

變數應按其角色(例如供應商,問候語)而不是其型別(例如工廠,字串等)命名。

協議名稱和變數名稱之間的高度耦合

如果型別的名稱在大多數情況下描述其角色(例如 Iterator),則型別應使用字尾 Type 命名。 (例如 IteratorType)

使用弱型別引數時提供其他詳細資訊

如果物件的型別沒有明確指出它在函式呼叫中的用法,那麼該函式應該用每個弱型別引數的前一個名詞命名,描述它的用法。
例:

func addObserver(_ observer: NSObject, forKeyPath path: String)

呼叫看起來像`object.addObserver(self,forKeyPath:path)

代替

func add(_ observer: NSObject, for keyPath: String)

呼叫看起來像 object.add(self, for: path)