[swift 2.0] set , get , didset
類別的成員就是要用來設定和取值
所以用set來設定
用get來取值
寫個Book類別來示範
用set 來設定書本標題
用get來取得書本標題
用init來初始化成員值,也就是C++中的建構子
所以用set來設定
用get來取值
寫個Book類別來示範
用set 來設定書本標題
用get來取得書本標題
用init來初始化成員值,也就是C++中的建構子
class Book{
var name:String
var title: String{
set {
self.name = newValue
}
get {
return self.name
}
}
init(name:String){
self.name = name
}
}
var b = Book(name:"Love Story!")
b.title = "is everybody needed!"
print(b.title)
解說:
var b = Book(name:"Love Story!") 呼叫init
b.title = "is everybody needed!" 呼叫set
b.title 呼要get
寫程式的精神:大膽假設,小心驗證
為了在設定成員時,要設定檢查機制,避免成員存入不該存的值
所以用didset來當安全守門員
對name這個成員加上didSet來檢查,
class Book{
var name:String {
didSet {
print("我是安全守門員,我會好好的檢查變數值是否安全後,才設定,變數直是:"+name)
}
}
var title: String{
set {
self.name += newValue
}
get {
return self.name
}
}
init(name:String){
self.name = name
}
}
var b = Book(name:"Love stories ")
b.title += "is everybody needed!"
print(b.title)
執行順序:
步驟1. b.title += "is everybody needed!"
步驟2. title 的 set
步驟3. name的 didSet