swift中的计算属性
getter
- 在swift中的getter属性,可以简写大括号return计算后的值,self即可根据计算值的变化而变化
var total = 500
var value = 300
var a:Int{
return total - value
}
由于上式中total和value都是变量,故a的值是动态变化的
上式是下式的缩写
var a:Int{
get{
return total - value
}
}
setter
- 当我们给self重新赋值的时候,就会调用set属性,此时set中可以使用一个名为newValue的变量,这个变量就是新赋的值。
var a:Int{
set{
if newValue < 200{
print("小于200")
}
}
}
- 但是再swift中,set不能单独出现,除非使用willset和didset。willset指的是即将变化(还没变),didset指的是已经变化
var a:Int{
willset{
if newValue < 200{//此处的newValue和之前的set相同
print("小于200")
}
}
didset{
if oldValue < 200{//此处的oldValue即为更改前的值
print(a)//此时a值已经改变
}
}
}