我知道這個東西很多人討論過,網路上也有相當相當多的分享,我覺得大部分都是在說明各自的特性,像說Enum的操作、Struct要怎麼設定變數....也有比較類似說三者間的比較,誰可以協定、誰不能繼承(所以我這邊就不詳細的說明了),但我相當想知道的就是 使用時機,知道各自的特性用法後,要怎麼符合情境的使用,這個相當藝術,用的好上天堂,用不好......
因為本身為Java工程師,在Java的世界裡觀念跟Swift不一樣,所以當我面對這三個東西的時候,我著實的困擾,相當不知道他們之間的差異與最佳使用方式(尤其Struct和Class)(雖然現在也只半懂XD,需要透過經驗成長)
下面我會提到一些簡單的重點,和我目前認為最適合的情境方式,再按照慣例分享網路神人的說明,若有不足或錯誤,也煩請各位大大們留言分享了喔!感恩
不囉唆!先上一張重要的比較表(出處:參考來源2.),其中我覺得比較重點的粗體斜線標示
_ | Copy by | Inheritance | Static Variable | Instance Variable | Static Method | Instance Variable
--- | --- | --- | --- | --- | —
Class | Reference | Yes | Yes | Yes | Yes | Yes
Struct | Value | No | Yes | Yes | Yes | Yes
Enum | Value | No | Yes | No | Yes | Yes
共同性質:
我統整吸收後認為:
網路上也看到有人贊成多加使用Struct,畢竟簡單、安全,但綜合起來,其實每個專案裡面都會在不同的情況下使用到上面三種型別,如何有效、適合的使用才是重點所在,而在DailyWorkList中我也會盡量思考過後使用適合的方式,有遇到比較特殊的情況就再分享喔
參考來源: