在Swift中创建函数时,可以使用“ get”和“ set”两个词吗?例如,我可以将函数声明为func getAuthorizedUsers()
而不是func authorizedUsers()
吗?在ObjectiveC中,建议不要在声明函数时使用get和set关键字。在Swift中怎么样?
此外,在声明属性时可以使用“ is”关键字吗?例如:
public var isAuthorized: Bool {
get {
return true
}
}
我已经阅读了Swift命名约定文档,但是找不到我的问题的答案。谢谢。
答案 0 :(得分:0)
所有规则都概述了here。
对于get
,这显然违反了“省略不必要的单词”规则。如果某个方法返回某些内容,则调用站点将知道该方法用于获取某些值。您无需重复该想法。如果不需要任何参数,可以考虑将其转换为计算属性。
对于set
,有时可能是合适的。如果您的方法只需要一个参数并且有一个对应的getter,
func getFoo() -> Int {
...
}
func setFoo(_ foo: Int) {
...
}
这是一个很好的信号,可以将其转换为计算属性:
var foo: Int {
get { ... }
set { ... }
}
set
方法是一个适合使用UIButton.setTitle
的好例子。它带有两个参数,因此计算所得的属性将不起作用。
对于is
,这显然符合规则“使用布尔方法和属性应视为有关接收方的断言”。是的,您应该将其用于布尔成员。