![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnLiRWMiNWO2UWM2IDZ4YGZldTZ1MGMwYGZ5cTNmlTO0QTM1EzYkdDM18CXt92Yu4GZjlGbh5SZslmZxl3Lc9CX6MHc0RHaiojIsJye.png)
2015 年 12 月 3 日,swift 正式開源。同時,官方也公布了 swift 3 的最新消息,即 swift 3 将會在 2016 年秋天釋出。
api 設計指南與 swift 中 objective-c 的導入
swift 3 的 api 設計指南将與 objective-c 中 cocoa 的完全不同。這就意味着 objective-c 中的 api 映射到 swift 時會與以往不同。這裡有一個相關的例子可以研究一下。以下這行代碼的方法調用是從現有的 objective-c 中「翻譯」成 swift 的:
而在 swift 3 中同樣的方法調用将會是下面這個樣子的:
這樣讓文法看上去更「swift 化」。然而,這也意味着已經導入的 objective-c api 将會有很大變動,是以,現有的這些代碼将會報錯。
徹底的泛型
swift 有泛型,但是這次是為了引進新的特性,就像遞歸協定限制(使得受限的擴充遵循新協定的能力),比如遵循 equatable 的數組的元素也是遵循 equatable 的。
精簡的語言
對于那些「和 swift 文法不是很配」的語言特性仍然會有一些小改動。同樣的,這也會使得現有的這些代碼報錯。
展望 swift 3
swift 目前還沒有在語言層面支援并發操作。取而代之的是使用 nsopertion 或 dispatch queues 來處理。這種狀況在 swift 3 中仍然不會改變。但是,在未來(swift 4?)可能會有一個語言層面上并發操作的支援。
swift 和 c,特别是 objective-c,現在已經有了很好的相容。但是,卻缺乏與 c++ 的相容。雖然,這也不會在 swift 3 上有所改變,但是這需要一個比較長期的目标來引進它。
小結
首先,swift 将會在未來大規模的改善和提升,這是一個非常好的消息。另一方面,swift 3 的釋出會使得現有的 swift 2 代碼報錯,是以,需要做一些代碼遷移的工作才行。
====================================分割線================================