【发布时间】:2014-07-24 23:25:15
【问题描述】:
在 Swift WWDC 会话简介中,演示了一个只读属性 description:
class Vehicle {
var numberOfWheels = 0
var description: String {
return "\(numberOfWheels) wheels"
}
}
let vehicle = Vehicle()
println(vehicle.description)
选择上述方法而不是使用方法是否有任何影响:
class Vehicle {
var numberOfWheels = 0
func description() -> String {
return "\(numberOfWheels) wheels"
}
}
let vehicle = Vehicle()
println(vehicle.description())
在我看来,选择只读计算属性的最明显原因是:
-
语义 - 在本例中,
description成为类的属性而不是它执行的操作是有意义的。 - 简洁/清晰 - 在获取值时无需使用空括号。
显然,上面的示例过于简单,但还有其他充分的理由可以选择其中一个吗?例如,是否有一些函数或属性的特性可以指导您决定使用哪个?
注意乍一看,这似乎是一个很常见的 OOP 问题,但我很想知道任何 Swift 特定的特性,这些特性可以指导使用这种语言时的最佳实践。
【问题讨论】:
-
观看 204 会话 - “何时不使用 @property” 它有一些提示
-
等等,你可以做一个只读属性并跳过
get {}?我不知道,谢谢! -
WWDC14 Session 204 可以在这里找到(视频和幻灯片),developer.apple.com/videos/play/wwdc2014/204
-
查看相关Kotlin question。
标签: swift methods properties language-agnostic semantics