当我尝试定义以@final关键字开头的变量时:
class SomeClassX{
@final var x: String
var y: String
init(y: String) {
self.y = y
}
}
我收到一个错误:
'final'是声明修饰符,不是属性
我发现这真的很奇怪,因为Swift编程语言这本书说
您可以防止方法,属性或下标被覆盖 通过将其标记为最终。为此,请编写@final 属性 在其介绍者关键字之前
我应该如何使用它?
答案 0 :(得分:3)
您正在使用语言指南的最新版本。从Swift 1.0开始,final
是关键字,而不是属性。只需移除@
。
您可以在指南的修订历史中看到此更改。
答案 1 :(得分:0)
@
之前不需要final
。事实是,您所做的编译器是将final
解释为属性,例如@available
。因此:
class SomeClassX{
final var x: String
var y: String
init(y: String) {
self.y = y
}
}