Swift與OC的不同
寫在前面
以前做iOS的專案一直使用OC開發,最近做專案時使用了Swift。但是被別人問及
- 為什麼使用Swift做專案?
- Swift與OC相比有什麼區別?或者有什麼優勢?
...
我先是一臉懵逼,因為自己確實沒有細細比較過Swift與OC的區別,或者Swift語言到底有什麼優勢。靜下心來想想,自己使用Swift開發專案的最初原因,無非是想證明自己已經掌握了一門新的開發語言,而且,這門語言已經很成熟。
真要說說Swift與OC的區別,那就先從語法開始總結吧!
Swift與OC語法上的區別
常量和變數
- Swift常量使用let宣告;變數使用var宣告
- Swift對常量和變數有型別推斷的機制
- Swift對變數新增了可選型別,可選即表示這個變數要麼有值,要麼為nil
函式
- Swift一行程式碼不用寫分號
- Swift的返回值可以使用元組返回多個值
- Swift的函式引數可以設定預設值
- Swift的函式引數有內外標籤
- Swift的函式可以巢狀函式
- Swift子類覆蓋父類的方法必須使用關鍵字override
關鍵字、保留字、資料型別
- nil:OC中nil只能修飾NSObject及其子類物件,表示OC物件指標為空;Swift中nil可以修飾所有型別,包括基礎資料型別,表示值缺失
- switch:1. Swift中switch語句的值可以是字串等值 2.Swift中switch不用break,如果想實現幾個值貫穿可以使用關鍵字fallthrough
- 陣列:Swift的資料可以儲存基礎型別資料;NSArray只能使用NSNumber儲存基礎資料型別資料
- 布林型別:Swift的Bool型別true才為真;OC裡BOOL型別非0即為真
- 取餘:Swift可以對浮點型資料取餘(Swift3.0後使用函式對浮點型資料取餘;%與OC中保持一致)
- Swift中對變數取別名使用typealias;OC中使用typedef
Swift新增關鍵字、運算子
- 範圍運算子:
a...b表示[a, b],及a<= value <=b
a..<b表示[a, b),及a<= value <b - 元組
現在先總結這麼多,後續更新。如果有什麼遺漏的語法不同點,歡迎大家提出~
相關文章
- OC 與 Swift 相互呼叫Swift
- Swift中橋接標頭檔案建立(Swift 與 OC 的混編)Swift橋接
- oc與swift檔案的相互呼叫方式——橋接Swift橋接
- swift3.0與OC的互動注意事項Swift
- OC與Swift閉包對比總結Swift
- OC與Swift混編專案遷移到Swift4.2小記Swift
- OC和Swift混編Swift
- Swift3.0 -- 閉包的迴圈引用與OC的對比Swift
- swift專案呼叫OC庫 和OC專案 在swift檔案裡面全域性呼叫OC庫Swift
- Swift與OC真正去理解Block解決迴圈引用的技巧SwiftBloC
- 2018-07-12 OC 與swift 互相呼叫Swift
- OC和Swift混編經驗Swift
- (轉)OC專案轉Swift指南Swift
- iOS UMeng OC和Swift混編iOSSwift
- OC 和 Swift 中是如何用列舉的?Swift
- 進階-Swift和OC混編生成 swift pod私有庫Swift
- Swift和Objective-C混合程式設計——Swift呼叫OCSwiftObject程式設計
- Swift和Objective-C混合程式設計——OC呼叫SwiftSwiftObject程式設計
- Swift 中的網路請求問題 OC(AFNetworking) && Swift(Alamofire)Swift
- OC,swift,javascript,Dart語言比較SwiftJavaScriptDart
- iOS開發中使用OC和swift的對比iOSSwift
- OC WKWebView的JS與OC互動、Cookie管理WebViewJSCookie
- iOS 開發選擇OC還是Swift?iOSSwift
- 一、OC,Swift 二分查詢法Swift
- 面向不同需求的物件儲存系統對比:Ceph與Swift物件Swift
- OC中專案使用swift(持續更新中)Swift
- iOS Swift和OC專案中自定義LogiOSSwift
- OC/Swift/C/C++混合使用的程式設計姿勢SwiftC++程式設計
- OC:類與物件☀️物件
- oc 與js 的原生互動JS
- iOS-OC、Swift混編之橋接檔案iOSSwift橋接
- Swift3.0 -- didSet(OC中重寫setter方法)Swift
- 從OC和C#中找樂趣:相同又不同的delegateC#
- iOS Navigation Bar 導航欄折騰記 (Swift&OC)iOSNavigationSwift
- Covariance, Contravariance以及Generics在 Swift/OC 中的應用.Swift
- JS 與 OC 互動的三種方法JS
- 【IOS】java 與oc之間的比較iOSJava
- [譯] 輕鬆管理 Swift 專案中的不同環境Swift