Objective-C和Swift的共同點與不同點
以下資料來自[ref]網頁內容,這裡純粹做重點整理:
共同點:
- ARC、屬性、協議(protocol)、初始化(initialization)、extension、命名參數、匿名函數
- Swift和Objective-C能使用同一個runtime,Swift的class可以透過橋接到Objective-C使用,反之亦然
不同點:
- Swift注重安全(type safety),Objective-C注重靈活
- Swift注重protocol-oriented programming、functional programming,Objective-C注重object-oriented programming
- Swift注重value type,Objective-C注重pointer和reference
- Swift是靜態語言,Objective-C是動態語言(p.s. 靜態語言v.s.動態語言區別請參考[ref 2])
- Swift的Optional type適用於所有data type,比Objective-C中的nil更加安全和簡潔
- Swift中的generic更加方便通用,Objective-C只能在collection type使用generic
- Swift中提供一些高階函數(i.e. map, filter, reduce, flatMap)方便開發者使用
- Swift新增兩種access level,細化權限。(p.s. open、public、internal、fileprivate、private)
- Swift中獨有的tuple類型,把多個值組合成複合的值。tuple中的data可以是不同的型別
ref:
https://juejin.cn/post/6844903776860520462
ref 2(關於靜態與動態語言):
https://openhome.cc/Gossip/Programmer/DynamicStaticLanguage.html