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
}
}
答案 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
}
}