Swift中类的存储types属性
我也看到过类似的问题,但是没有一个能够回答这个问题。 “Swift编程语言”一书(第1.2节)说:
对于类,只能定义计算的types属性
然后在下一页他们有以下的例子(为了简洁,我摆脱了一些代码):
class SomeClass { static var storedTypeProperty = "Some value." // ... }
即使variables的名称说这是一个存储的types属性(不是一个计算的)。
更新:您可以为类定义存储的属性,请参阅下面的详细答案。 原来这本书没有更新Swift 1.2中的这个部分。
Swift 1.2引入了类中静态存储的属性。 Swift Language Enhancements下的Xcode 6.3发行说明列表(着重部分):
“
static
”方法和属性现在允许在类中(作为class final
类的别名)。 您现在可以在类中声明静态存储的属性 ,这些属性具有全局存储,并在第一次访问(如全局variables)时被懒惰地初始化。
这个例子
class SomeClass { static var storedTypeProperty = "Some value." // ... }
是一个类的静态属性的例子。 该声明
对于类,只能定义计算的types属性
是不正确的,它还没有根据这种语言的变化而更新。
这些文档看起来与书中的例子和实际的代码不一致。 这是一个REPL的例子:
1> class Foo { 2. static var _bar = 8 3. static var bar : Int { return _bar } 4. } 5> Foo.bar $R0: Int = 8 6>
显然有一个types属性的定义。