我在SO上看过类似的问题,但实际上没有人能回答这个问题。 “Swift编程语言”一书(v.1.2)说:
对于类,您只能定义计算类型属性
然后在下一页上他们有以下示例(为了简洁起见,我删除了一些代码):
class SomeClass {
static var storedTypeProperty = "Some value."
// ...
}
即使变量名称也表示它是存储的类型属性(不是计算属性)。
更新:您可以定义类的存储属性,请参阅下面的详细解答。原来这本书没有根据Swift 1.2中的更改进行更新。
答案 0 :(得分:8)
类中的静态存储属性是使用 Swift 1.2 引入的。 Xcode 6.3 Release Notes下的Swift Language Enhancements列表(重点已添加):
“
static
”方法和属性现在允许在类中使用(作为class final
的别名。您现在可以声明静态存储 类中的属性,具有全局存储并且是懒惰的 在第一次访问时初始化(如全局变量)。
示例
class SomeClass {
static var storedTypeProperty = "Some value."
// ...
}
是类的静态属性的示例。 声明
对于类,您只能定义计算类型属性
不正确,根据此语言更改尚未更新。
答案 1 :(得分:0)
文档似乎与书中的示例和实际代码不一致。这是一个REPL示例:
1> class Foo {
2. static var _bar = 8
3. static var bar : Int { return _bar }
4. }
5> Foo.bar
$R0: Int = 8
6>
显然已经定义了一个类型属性。