在swift 中g(shù)et,set被稱之為“計(jì)算屬性”,它用來(lái)間接獲取/改變其他屬性的值。
- set 和get 是針對(duì) 計(jì)算變量(Calculated property ) 是不可以賦值的
- 普通的存儲(chǔ)變量(storage property)才是可以賦值的
set和get的寫法:
var _name:String?
var name:String?{
get{
return _name;
}
set{
// 只要外界通過(guò).name給name賦值,就會(huì)把值給newValue
_name = newValue
}
}
在開發(fā)過(guò)程中不建議這樣使用,首先需要定義兩個(gè)屬性,很麻煩。
推薦使用這樣的方式實(shí)現(xiàn)
var gender:String?{
didSet
{
NSLog("已經(jīng)改變的時(shí)候", []);
}
}
除了didSet是已經(jīng)改變之后的操作,還有willSet是將要改變的時(shí)候
只是重寫了get方法,我們稱這個(gè)屬性為“計(jì)算性”屬性,也就是只讀屬性
注意:計(jì)算型屬性,不占用內(nèi)存空間
//“?”是可以省略的
var age:Int?{
get{
return 18;
}
}