開始之前允許吐槽一下搪缨,swift作為apple官方牽頭并且為主的語言次氨,特性進行了如此多修改和版本迭代對于一門開發(fā)語言來說是極其不推薦的度陆。github上許多源碼(app和第三方庫)版本支持分swift2艾凯,swift3或者swift4(4.0和4.1竟然還有區(qū)分)就是明證。
工程編碼對于語言特性和改變是非常敏感的懂傀,開發(fā)人員都不希望語言版本升級時留下的是一堆報紅的error
---以上只是因為WCDB的swift版本從4.0升級到4.1時出錯而引發(fā)的吐槽(Xcode9.3默認使用swift4.1趾诗,wcdb還只是支持4.0)
橫向語言對比,swift參考了java蹬蚁,go語言的許多特性:
例如:
1.go中對struct的看中恃泪,這一點被引入到了swift中,此外swift很大的弱化了數據對象犀斋,轉而支持struct贝乎,enum,protocol等叽粹,使其可以有變量览效,方法等。
2.java的強類型使得java是一門安全的語言虫几,OC中由于C而引入的強轉再也無法使用了朽肥,這個確實更安全。
3.java中的包名也引入進來持钉,稱為命名空間(C++說法)衡招,例如安卓的圖片加載庫GlideApp.XXXX使用方式和Alamofire.XXX一樣的原理
4.泛型的使用也使得代碼量更加精簡和靈活。以前OC的泛型只能是通過id或者NSObject類型每强,使用時進行強轉和判斷始腾,比較別扭
5.寫法上更加靈活,不用再寫一堆;作為代碼分割空执,鏈式調用支持等
傳送門:
20180411