struct 结构体名 { ①
static var(或let) 存储属性 = "xxx" ②
......
static var 计算属性名 : 属性数据类型 { ③
get {
return 计算后属性值
}
set (新属性值) {
......
}
}
}
enum 枚举名 { ④
static var(或let) 存储属性 = "xxx" ⑤
......
static var 计算属性名 : 属性数据类型 { ⑥
get {
return 计算后属性值
}
set (新属性值) {
......
}
}
}
class 类名 { ⑦
......
class var 计算属性名 : 属性数据类型 { ⑧
get {
return 计算后属性值
}
set (新属性值) {
......
}
}
}
上述代码中,第①行是定义结构体,结构体中可以定义静态存储属性和计算属性。第②代码是定义静态存储属性,声明关键字是static,这个属性可以是变量属性,也可以是常量属性。第③行代码是定义静态计算属性,声明使用的关键字是static,计算属性不能为常量,这里只能是变量。结构体静态计算属性也可以是只读的,语法如下:static var 计算属性名 : 属性数据类型 { return 计算后属性值}第④行是定义枚举,枚举中不可以定义实例存储属性,但可以定义静态存储属性,也可以定义静态计算属性。定义枚举静态属性与定义结构体静态属性的语法完全一样,这里就不再赘述了。第⑦行是定义类,类中可以定义实例存储属性,但不可以定义静态存储属性。类中可以定义静态计算属性。声明使用的关键字是class,这与结构体和枚举的声明不同。我们对上述说明进行了归纳,见下表。
提示 在静态计算属性中不能访问实例属性(包括存储属性和计算属性),但可以访问其他静态属性。在实例计算属性中能访问实例属性,也能访问静态属性。