Objective-C和Swift的共同點與不同點

Objective-C和Swift的共同點與不同點

以下資料來自[ref]網頁內容,這裡純粹做重點整理:

共同點:

  1. ARC、屬性、協議(protocol)、初始化(initialization)、extension、命名參數、匿名函數
  2. Swift和Objective-C能使用同一個runtime,Swift的class可以透過橋接到Objective-C使用,反之亦然

不同點:

  1. Swift注重安全(type safety),Objective-C注重靈活
  2. Swift注重protocol-oriented programming、functional programming,Objective-C注重object-oriented programming
  3. Swift注重value type,Objective-C注重pointer和reference
  4. Swift是靜態語言,Objective-C是動態語言(p.s. 靜態語言v.s.動態語言區別請參考[ref 2])
  5. Swift的Optional type適用於所有data type,比Objective-C中的nil更加安全和簡潔
  6. Swift中的generic更加方便通用,Objective-C只能在collection type使用generic
  7. Swift中提供一些高階函數(i.e. map, filter, reduce, flatMap)方便開發者使用
  8. Swift新增兩種access level,細化權限。(p.s. open、public、internal、fileprivate、private)
  9. Swift中獨有的tuple類型,把多個值組合成複合的值。tuple中的data可以是不同的型別

ref:
https://juejin.cn/post/6844903776860520462
ref 2(關於靜態與動態語言):
https://openhome.cc/Gossip/Programmer/DynamicStaticLanguage.html