[譯]蘋果公司接受了有關(guān) Swift 的三個(gè)提議

原文鏈接
作者:Erica Sadun
原文日期:2016-03-03

今天,蘋果公司接受了三大內(nèi)部推動(dòng)的提議(有些提議內(nèi)容稍作了修改):

由 Swift 核心團(tuán)隊(duì)開(kāi)發(fā)的,這三大提議徹底確定了 Swift 語(yǔ)言的特點(diǎn),開(kāi)發(fā)者如何使用 Swift 繼續(xù)前進(jìn)。

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

自動(dòng)轉(zhuǎn)換的項(xiàng)目(SE-0005)已經(jīng)放棄了去掉 API 名字前面的 NS 前綴的工作(暫時(shí)放棄了,修改后的提議會(huì)作為一個(gè)獨(dú)單的提議提出來(lái))。采用 API 指南將 Cocoa 的特色帶進(jìn) Swift 的世界里。閱讀評(píng)論,可以獲知這些 API 將會(huì)如何轉(zhuǎn)換,也包括 Swift 2 到 Swift 3 的項(xiàng)目工程。

提議的顯著部分就是要去掉 Foundation API 里的 “NS” 前綴,這次改名考慮到好幾個(gè)原因,最經(jīng)常提及的原因就是 Swift 中很多 Foundation 的參考語(yǔ)義屬性同 Swift 標(biāo)準(zhǔn)庫(kù)中的值語(yǔ)義互相矛盾沖突。 去 “NS” 前綴提議蘋果官方目前沒(méi)有接受,修改后的提議將會(huì)作為一個(gè)單獨(dú)的提議重新再次提出來(lái),同時(shí)計(jì)入反饋統(tǒng)計(jì)。

最后,標(biāo)準(zhǔn)庫(kù)更新(SE-0006)確立了 Swift 看起來(lái)如何,標(biāo)準(zhǔn)庫(kù)中的方法如何與最新的 API 指南協(xié)調(diào)一致。

提議中的這些改變會(huì)造成 Swift 代碼大規(guī)模的崩壞,需要一個(gè)遷移工具將 Swift 2 的代碼順利遷移成 Swift 3 代碼。提議中不同的 API 將是遷移的首要信息來(lái)源。另外,在語(yǔ)言允許的情況下,庫(kù)里仍然保留了舊的名字,同時(shí)用 rename 和棄用符號(hào)標(biāo)注出來(lái),幫助編譯器能夠生正確的錯(cuò)誤信息,彈出 Fix-It。

在接受提議時(shí),蘋果提到了兩個(gè)重要的改變:

提議中大部分修改都是有關(guān) Swift API 設(shè)計(jì)指南(SE-0023),特別是:

  • 標(biāo)準(zhǔn)庫(kù)中使用第一個(gè)參數(shù)的標(biāo)簽
  • 小寫枚舉的名稱,包括.some(x)和.none

第一個(gè)參數(shù)的標(biāo)簽從 Swift 1 進(jìn)化到 Swift 2 時(shí)更像是 Objective-C 語(yǔ)言風(fēng)格,到了 Swift 3 則又更像是 Swift 語(yǔ)言風(fēng)格了。目前已經(jīng)處于純 C 和純 Objective-C 之間了,希望相對(duì)于兩次這次能找到平衡。

例如:

-  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

枚舉將和其他靜態(tài)成員一樣,命名規(guī)則是小寫字母開(kāi)頭,使用駝峰命名法。

更多列表可以更新的提議中找到。

本文由 SwiftGG 翻譯組翻譯,已經(jīng)獲得作者翻譯授權(quán)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容