iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 12
0

大家看到 class 和 static 這兩個 keyword 當作前綴的修飾詞,心中有沒有出現這兩個到底差在哪邊的疑惑?尤其使用上又感覺不出差異在哪邊。

在比較之前先簡單提一下什麼是 static?
ANS: 在程式碼前面宣告 static 就是在 compiler 後分配程式的記憶體位置,無論之後實例化他多少次,記憶體位置永遠一樣,而其他非 static 在 new 一個新物件時,就會產生的物件就會位於不同的記憶體空間。

conclusion:

圖一:

圖二:

圖二的結論:‘static func’ = ‘final class func’

在圖一中,整理了兩者的比較,大家可以參考看看,但要特別注意:

Class 修飾詞後是可以被 override 的,他這邊寫錯了

而 static 修飾詞中包含了 final 的效果,所以你要 override 被 static 修飾的屬性時會報錯

以上~

ref: https://stackoverflow.com/questions/25156377/what-is-the-difference-between-static-func-and-class-func-in-swifts


上一篇
Google Map 不再迷路 (二)
下一篇
LLDB 簡介
系列文
iOS 開發:燃燒吧! 從初心者到超級初心者的轉職之旅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言