Swift 中方法和属性的命名约定。我可以使用 "get"、"set" 和 "is" 关键字吗?
Naming Convention for Methods and Properties in Swift. Can I use "get", "set" and "is" Keywords?
当我在Swift中创建一个函数时,我可以使用"get"和"set"两个词吗?例如,我可以将函数声明为 func getAuthorizedUsers()
而不是 func authorizedUsers()
吗?在 ObjectiveC 中,不建议在声明函数时使用 get 和 set 关键字。 Swift 怎么样?
还有,声明属性的时候可以使用"is"关键字吗?例如:
public var isAuthorized: Bool {
get {
return true
}
}
我已阅读 Swift 命名约定文档,但找不到问题的答案。谢谢。
规则都列出来了here。
对于 get
,这显然违反了 "Omit needless words" 规则。如果一个方法returns是什么东西,调用站点就会知道它是用来获取一些值的。你不需要重复这个想法。如果不需要参数,您可以考虑将其转换为计算 属性。
对于set
,有时可能是合适的。如果你的方法只需要一个参数,并且有对应的getter,
func getFoo() -> Int {
...
}
func setFoo(_ foo: Int) {
...
}
这是一个很好的迹象,可以将其转换为计算 属性:
var foo: Int {
get { ... }
set { ... }
}
set
的一个很好的例子是 UIButton.setTitle
方法。它有两个参数,因此计算出的 属性 不起作用。
对于is
,显然符合规则"Uses of Boolean methods and properties should read as assertions about the receiver"。所以是的,您应该将它用于布尔成员。
当我在Swift中创建一个函数时,我可以使用"get"和"set"两个词吗?例如,我可以将函数声明为 func getAuthorizedUsers()
而不是 func authorizedUsers()
吗?在 ObjectiveC 中,不建议在声明函数时使用 get 和 set 关键字。 Swift 怎么样?
还有,声明属性的时候可以使用"is"关键字吗?例如:
public var isAuthorized: Bool {
get {
return true
}
}
我已阅读 Swift 命名约定文档,但找不到问题的答案。谢谢。
规则都列出来了here。
对于 get
,这显然违反了 "Omit needless words" 规则。如果一个方法returns是什么东西,调用站点就会知道它是用来获取一些值的。你不需要重复这个想法。如果不需要参数,您可以考虑将其转换为计算 属性。
对于set
,有时可能是合适的。如果你的方法只需要一个参数,并且有对应的getter,
func getFoo() -> Int {
...
}
func setFoo(_ foo: Int) {
...
}
这是一个很好的迹象,可以将其转换为计算 属性:
var foo: Int {
get { ... }
set { ... }
}
set
的一个很好的例子是 UIButton.setTitle
方法。它有两个参数,因此计算出的 属性 不起作用。
对于is
,显然符合规则"Uses of Boolean methods and properties should read as assertions about the receiver"。所以是的,您应该将它用于布尔成员。