需要澄清Swift类型属性

时间:2015-07-20 01:03:04

标签: swift

Apple关于类型属性的快速文档声明:

“对于值类型(即结构和枚举),您可以定义存储和计算类型属性。对于类,您只能定义计算类型属性。”

本段中的措辞令人困惑。所以,我可以在结构和枚举中定义 存储和计算类型属性 ,但我只能定义 计算类型属性 在课堂上?这很奇怪,因为苹果给出了一个例子,他们在一个类中定义存储和计算属性

struct SomeStructure {
  static var storedTypeProperty = "Some value."
  static var computedTypeProperty: Int {
  // return an Int value here
  }
}

enum SomeEnumeration {
 static var storedTypeProperty = "Some value."
 static var computedTypeProperty: Int {
 // return an Int value here
 }
}

class SomeClass {
  static var storedTypeProperty = "Some value."
  static var computedTypeProperty: Int {
   // return an Int value here
  }
  class var overrideableComputedTypeProperty: Int {
  // return an Int value here
  }
}

1 个答案:

答案 0 :(得分:1)

在您的示例中,类中存储的属性是static属性。但是你会注意到类中没有存储属性是class属性;这是不受支持的:

class SomeClass {
  static var storedTypeProperty = "Some value."
  static var computedTypeProperty: Int {
   // return an Int value here
  }
  // class var overrideableStoredTypeProperty = "Some value." // NO
  class var overrideableComputedTypeProperty: Int {
  // return an Int value here
  }
}