类,结构,函数和变量的名称应避免歧义。
例:
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)