Swift 進化接受了三大提議

作者:Erica Sadun,原文鏈接,原文日期:2016-03-03
譯者:Crystal Sun;校對:shanks;定稿:Cee

今天,蘋果接受了三大重要的內部驅動的提議(有些提議內容稍作了修改):

由 Swift 核心團隊開發的,這三大提議徹底確定了 Swift 語言的特點,開發者如何使用 Swift 繼續前進。

API 設計指南(SE-0023)最引人注目,可以說是最棒的設計指南的典型范例,也是蘋果公司的一貫風格。里面大部分內容都淺顯易懂,很多建議非常有幫助,而有一部分內容我稍微有些個人的看法。作為開發者,你可以盡可能的提出歡迎或者批評。

自動轉換的項目(SE-0005)已經放棄了去掉 API 名字前面的 NS 前綴的工作(暫時放棄了,修改后的提議會作為一個獨單的提議提出來)。采用 API 指南將 Cocoa 的特色帶進 Swift 的世界里。閱讀評論,可以獲知這些 API 將會如何轉換,也包括 Swift 2 到 Swift 3 的項目工程。

提議的重要部分就是要去掉 Foundation API 里的 “NS” 前綴,這次改名被認為是有問題的,考慮到了好幾個原因,最經常提及的原因就是 Swift 中很多 Foundation 的參考語義屬性同 Swift 標準庫中的值語義互相矛盾沖突。 去 “NS” 前綴提議蘋果官方目前沒有接受,修改后的提議將會作為一個單獨的提議重新再次提出來,同時會考慮收到的反饋。

最后,標準庫更新(SE-0006)確立了 Swift 看起來如何,標準庫中的方法如何與最新的 API 指南協調一致。

提議中的這些改變會造成 Swift 代碼大規模的崩壞,需要一個遷移工具將 Swift 2 的代碼順利遷移成 Swift 3 代碼。提議中不同的 API 將是遷移的首要信息來源。另外,在語言允許的情況下,庫里仍然保留了舊的名字,同時用 rename 關鍵字作為棄用符號標注出來,幫助編譯器能夠生成正確的錯誤信息,彈出如何修改的信息。

在接受提議時,蘋果提到了兩個重要的改變:

提議中大部分修改都是與 Swift API 設計指南(SE-0023)有關的,特別是:

  • 標準庫中使用第一個參數的標簽
  • 小寫枚舉的名稱,包括 .some(x) 和 .none

第一個參數的標簽從 Swift 1 進化到 Swift 2 時更像是 Objective-C 語言風格,到了 Swift 3 則又更像是 Swift 語言風格了。目前已經處于純 C 和純 Objective-C 之間了,希望相對于兩次這次能找到平衡。

例如:

-  func advancedBy(n: Distance, limit: Self) -> Self
+  func advanced(by n: Distance, limit: Self) -> Self

-  func distanceTo(end: Self) -> Distance
+  func distance(to end: Self) -> Distance

枚舉將和其他靜態成員一樣,命名規則是小寫字母開頭,使用駝峰命名法。

更多擴充修改的列表可以更新的提議中找到。

本文由 SwiftGG 翻譯組翻譯,已經獲得作者翻譯授權,最新文章請訪問 http://swift.gg

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容