Swift的Computed Properties

Henry Huang
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裡面的程式碼了

最後是使用計算屬性的一些注意事項:

  1. 必須使用var
  2. 可以只定義get,如果只定義get,get可以省略不寫
  3. set裡面有newValue變數可以取得新值
  4. 必須定義型別
  5. 不能有初始值

--

--

Henry Huang
Henry Huang

Written by Henry Huang

大學讀企管/退伍後在業務圈打滾6年後突然有一天決定投入完全沒接觸過的程式設計/目前為一位iOS Developer/熱愛NBA/dafu1231@gmail.com

No responses yet