Swift的Computed Properties
2 min readMar 31, 2019
swift的計算屬性並沒有儲存一個值,而是使用set和get來計算值,記得以前看到這個都會不知道這到底在幹嘛…哈哈
就建立一個計算BMI的class來複習一下
註: BMI的計算公式= 體重/身高的平方(公尺)
BMI類別裡面的value屬性就是計算屬性,使用get關鍵字定義要執行的程式碼,之後就可以使用bmi.value就可以得到計算後的結果
當然這個功能其實也可以在class裡建立方法來實現,但有時候不複雜的話用計算屬性好像更像Swift了…嘿嘿
當只定義get時可以省略get不寫,就會變成這樣(好像更帥氣了一點)
那另一個set要做什麼呢?顧名思義就是將一個值設定給這個變數時會執行的程式碼
將set補上去後是這樣
當我們設定一個新的值給BMI的value時,可以在set裡面使用newValue取得到這個值,就可以用它來做一些處理
像上面set裡面的意思就是當我們設定一個新的BMI的value給他時,他會去更新體重的值
上面我們設定了25給bmi.value,然後印出來身高和體重看看,可以看到體重已經從50變成64了,也就是他去執行了set裡面的程式碼了
最後是使用計算屬性的一些注意事項:
- 必須使用var
- 可以只定義get,如果只定義get,get可以省略不寫
- set裡面有newValue變數可以取得新值
- 必須定義型別
- 不能有初始值