swift跟oc的區別


1.Swift可以面向協議編程、函數式編程、面向對象編程。

2.Swift是類型安全的,代碼中使用字符串String,就不能傳遞一個整型Int給它。編譯時會做類型檢查,不匹配的類型會錯誤標記出來。

3.典型的struct enum tuple都是值類型,Int,Double,Float,String,Array,Dictionary,Set都是用結構體實現的,也是值類型。

4.Swift的枚舉可以使用整型 浮點型 字符串等,還有擁有屬性和方法,甚至支持泛型,協議,擴展等

5.Swift支持泛型,支持泛型類型約束。

6.Swift對協議支持更豐富,可以實現面向協議編程。

7.Swift可以直接定義函數類型變量,可以作為其他函數參數傳遞,可以作為函數返回值返回。(這一點跟js的閉包很像)

 

1.Objective-C以面向對象編程為主,當然你可以引入類似ReactiveCocoa的類庫來進行函數式編程。

2.OC則不是,你聲明一個NSString變量,仍然可以傳遞一個NSNumber給他,編譯期間只會警告,不會報錯。

3.OC里面NSNumber,NSString以及集合類對象都是指針類型。

4.OC的枚舉只是個標記值。

5.OC在swift2之后加入Generics泛型支持,不過泛型約束停留在編譯器警告階段。

6.OC的協議缺乏強約束,提供optional特性往往成為很多問題的來源。

7.OC需要用selector或block才能模擬Swift類似效果。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM