Swift清除用法

示例

避免歧义

类,结构,函数和变量的名称应避免歧义。

例:

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

然后,对该函数的函数调用将如下所示:

list.remove(at: 42)

这样,避免了歧义。如果只是函数调用list.remove(42),则不清楚,是否将删除等于42的元素,或者是否将删除索引42处的元素。


避免冗余

函数名称不应包含冗余信息。

一个不好的例子是:

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

对该函数的调用可能看起来像。该变量已经表明元素已删除。函数签名最好如下所示:list.removeElement(someObject)someObject

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

对该函数的调用如下所示:。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)