Swift 5進入釋出倒數計時

weixin_34127717發表於2018-10-07

在正式釋出Swift 4.2之後,Swift團隊現在啟動了釋出過程的最後階段,把注意力集中在了Swift 5上。Swift 5計劃於2019年初發布,其目標是在保持原始碼相容性的同時,實現ABI穩定性。

\\

ABI穩定性大致可以理解為跨Swift版本的“二進位制相容性”。ABI穩定性允許將框架連結到程式,而不管使用了哪個編譯器版本來編譯它們,只要兩個編譯器生成的程式碼都符合即將到來的Swift ABI。對於第三方框架開發者以及在蘋果公司內部推廣Swift應用來說,這是一個關鍵的特性。ABI穩定性最初計劃在Swift 3中實現,但後來由於大量的新語言特性正在開發而延遲。

\\

如前所述,ABI穩定性不包括蘋果所說的模組穩定性,後者可以描述為與未來編譯器版本相容的庫的介面。換句話說,ABI穩定性影響的是框架執行時鏈入程式的能力,模組的穩定性關注的是在使用更新版本的編譯器(例如Swift 6)構建程式時可以使用使用舊版本的編譯器(例如Swift5)構建的庫。模組穩定性肯定是需要的,因為它可以簡化開發人員在多個賬戶下的開發,但並不關鍵。目前還不清楚,模組穩定性是否會加入Swift 5。

\\

Swift 5還包括若干新語言特性其中有些已經實現,因此,這些特性毫無疑問會加入這個版本中,其中包括:

\\
  • “本體鍵路徑(Identity key path)”:這提供了一種方法,使開發人員可以使用self偽屬性引用符合該路徑的整個值。\
  • count(where:):這提供了在滿足布林表示式的Sequence中計算元素個數的可能性。\
  • \\t

    原始字串分隔符:它允許開發人員將任何需要轉義的字元包含在以\"\"\"分隔的字串中,而不是使用單引號(\")。

    \\t\

其他特性仍然在開發之中,包括扁平化來自try?的巢狀選項simd vectors使用者定義的動態“callable”型別,等等。

\\

所有新的語言特性都不會破壞原始碼的相容性,也就是說,大多數相容Swift 4.2編譯器的原始碼都應該使用Swift 5.0編譯器進行編譯。不過,4.2版本之前的Swift版本不是原始碼相容的,至少應該升級到Swift 4.2版本。開發團隊將定期釋出趨近5.0版本的可下載快照

\\

檢視英文原文:Swift 5 Enters the Latest Stage of Release

相關文章