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属性的定义。