Swift中方法和属性的命名约定。我可以使用“获取”,“设置”和“是”关键字吗?

时间:2019-03-02 09:47:20

标签: swift naming-conventions

在Swift中创建函数时,可以使用“ get”和“ set”两个词吗?例如,我可以将函数声明为func getAuthorizedUsers()而不是func authorizedUsers()吗?在ObjectiveC中,建议不要在声明函数时使用get和set关键字。在Swift中怎么样?

此外,在声明属性时可以使用“ is”关键字吗?例如:

public var isAuthorized: Bool {
    get {            
        return true
    }
}

我已经阅读了Swift命名约定文档,但是找不到我的问题的答案。谢谢。

1 个答案:

答案 0 :(得分:0)

所有规则都概述了here

对于get,这显然违反了“省略不必要的单词”规则。如果某个方法返回某些内容,则调用站点将知道该方法用于获取某些值。您无需重复该想法。如果不需要任何参数,可以考虑将其转换为计算属性。

对于set,有时可能是合适的。如果您的方法只需要一个参数并且有一个对应的getter,

func getFoo() -> Int {
    ...
}

func setFoo(_ foo: Int) {
    ...
}

这是一个很好的信号,可以将其转换为计算属性:

var foo: Int {
    get { ... }
    set { ... }
}

set方法是一个适合使用UIButton.setTitle的好例子。它带有两个参数,因此计算所得的属性将不起作用。

对于is,这显然符合规则“使用布尔方法和属性应视为有关接收方的断言”。是的,您应该将其用于布尔成员。