类属性
实例属 性
属于一个特定类型的实例;类属性
属于整个类型,在多个该类型的实例间共享。类属性
既可以定义为存储属性
也可以定义为计算属性
存储的类属性
必须在定义时提供初始化器。但是类型属性
在首次访问时才初始化,同时类型属性
的初始化是线程安全的。使用关键字
static
来定义类型属性。在为类定义计算型类型属性时,可以改用关键字 class
来支持子类对父类的实现进行重写.类,结构体和枚举都可以定义存储型类属性
class SomeStructure {
static var storedTypeProperty = "Some value."
class var computedTypeProperty: Int {
return 1
}
}
enum SomeEnumeration {
static var storedTypeProperty = "Some value."
static var computedTypeProperty: Int {
return 6
}
}
class SomeClass : SomeStructure{
class override var computedTypeProperty: Int {
return 107
}
}
类型属性
可以被子类继承,子类不可以定义与父类中名字相同的类型属性
。 当使用class
定义的类型计算属性,可以被子类重写。最近更新 1yr ago