歡迎加入QQ討論群258996829
黑暗掠奪者 頭像
蘋果2袋
2
黑暗掠奪者

Swift 3.0 及展望:徹底的泛型、精簡的語言

發(fā)布時間:2015-12-25 16:19  回復(fù):1  查看:4953   最后回復(fù):2015-12-25 16:24  

2015 年 12 月 3 日,Swift 正式開源。同時,官方也公布了 Swift 3 的最新消息,即 Swift 3 將會在 2016 年秋天發(fā)布。

API 設(shè)計指南與 Swift 中 Objective-C 的導入

Swift 3 的 API 設(shè)計指南將與 Objective-C 中 Cocoa 的完全不同。這就意味著 Objective-C 中的 API 映射到 Swift 時會與以往不同。這里有一個相關(guān)的例子可以研究一下。以下這行代碼的方法調(diào)用是從現(xiàn)有的 Objective-C 中「翻譯」成 Swift 的:

let contentString = listItemView.stringValue.stringByTrimmingCharactersInSet( NSCharacterSet.whitespaceAndNewlineCharacterSet())
而在 Swift 3 中同樣的方法調(diào)用將會是下面這個樣子的:
let content = listItem.stringValue.trimming(.whitespaceAndNewlines)
這樣讓語法看上去更「Swift 化」。然而,這也意味著已經(jīng)導入的 Objective-C API 將會有很大變動,因此,現(xiàn)有的這些代碼將會報錯。

徹底的泛型

Swift 有泛型,但是這次是為了引進新的特性,就像遞歸協(xié)議約束(使得受限的擴展遵循新協(xié)議的能力),比如遵循 Equatable 的數(shù)組的元素也是遵循 Equatable 的。

精簡的語言

對于那些「和 Swift 語法不是很配」的語言特性仍然會有一些小改動。同樣的,這也會使得現(xiàn)有的這些代碼報錯。

展望 Swift 3

  • Swift 目前還沒有在語言層面支持并發(fā)操作。取而代之的是使用 NSOpertion 或 dispatch queues 來處理。這種狀況在 Swift 3 中仍然不會改變。但是,在未來(Swift 4?)可能會有一個語言層面上并發(fā)操作的支持。

  • Swift 和 C,特別是 Objective-C,現(xiàn)在已經(jīng)有了很好的兼容。但是,卻缺乏與 C++ 的兼容。雖然,這也不會在 Swift 3 上有所改變,但是這需要一個比較長期的目標來引進它。

小結(jié)

首先,Swift 將會在未來大規(guī)模的改善和提升,這是一個非常好的消息。另一方面,Swift 3 的發(fā)布會使得現(xiàn)有的 Swift 2 代碼報錯,因此,需要做一些代碼遷移的工作才行。

參考

Swift.org
Swift Programming Language Evolution

本文轉(zhuǎn)載自  SwiftGG


黑暗掠奪者 頭像
蘋果2袋
2
黑暗掠奪者   2015-12-25 16:24
還有一個關(guān)于3.0的帖子: 我們期待的 Swift 3.0 將會是什么樣?
您還未登錄,請先登錄

熱門帖子

最新帖子

?