-
计算属性,仅用于存储值
-
存储属性,用于计算,可以理解为该属性的值通过
getter
获取,通过setter
赋值,其中getter
是必须的,setter
是可选的
作用范围:计算属性可以用于 类、结构体、枚举中,存储属性仅可以用于 类、结构体 中,换言之:存储属性不能被用于枚举中
声明:计算属性仅可以用 var
关键字声明,存储属性可以用 let
和 var
声明。
举例:
- 存储属性:
class cls {
var a = 1
var b = {
return "hi"
}()
}
a 是直接赋值的计算属性
b 是通过调用闭包获取返回值赋值的
- 计算属性
class cls2 {
let m = 10
var c_store = 0;
var a: Int {
return self.m + 1
}
var b: Int {
get {
return self.m + 2
}
}
var c: Int {
get {
return self.c_store + 1
}
set(num) {
self.c_store += num
}
}
}
其中 a, b, c 都是计算属性
a 和 b 都是只有一个 getter
, 其中 a 省略了 get{}
c 则是包括 getter
和 setter
网友评论