Swift的變化:從2 2到3 0會帶來什麼

Channnnne發表於2018-01-25

原文連結

如果你還沒看過Swift發展路線圖,我建議你要好好看一看。目前為止,已經有四個針對Swift 3和一個針對Swift 2.2的提案被接受,也許某些提案能讓你會心一笑。

顯然,這些提案中最令人振奮的是 API 翻譯的改進,旨在廢除冗長的Objective-C風格,形成呼叫簡潔且易讀的Swift風格。

看上去我們將要和直接函式柯里化宣告說再見了,雖然這是沒有語法糖語言共有的特性。這是我能忍受的東西,這點改變並不會讓我開心起來,除此之外似乎有迫切的理由去降低語言的複雜度。

++--(這是兩個減號,不是破折號)運算子也在移除的部分中。它們最初是為了和C語言一致而引入的,但它們的結果值通常不會被檢查。對大部分開發者來說,可以用+=-=粗略地替代它們。

最後,var函式引數將會被移除,因為它們現在的實現是從複製和修改步驟中抽象出來,而這造成了困惑。我覺得這不是一個大損失,只是需要你宣告一個函式內 var 變數賦值來替代它。

十分有趣是,除了++--的改變,幾乎所有的變更點我都在新書中提到了。

已經被接受的 Swift 2.2 提案允許你 用關鍵字作為引數標籤,這使得現在可以這樣宣告:

    func touchesMatching(phase: NSTouchPhase, in view: NSView?) -> Set<NSTouch>
複製程式碼

Swift 3.0 承諾會保持 ABI(Application Binary Interface) 的穩定性:『成功保持 ABI 穩定性意味著,即便原始碼語言發生了變化,用以後版本的 Swift 開發的應用程式和編譯庫能在二進位制層次上和 Swift 3.0 版本的應用程式和編譯庫相互呼叫。』

開發團隊利用這個機會做個型別系統清理,包括所有語言的小改良,同時『完成』類系統。遷移者將把專案從2.x版遷到3.x版。基礎程式碼或多或少能保證與這次大更新沒關係。

最終的 API 設計指導原則釋出在這個網址

相關文章