中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

Swift 5.1?發(fā)布

2019-09-22    來源:OSCHINA

容器云強勢上線!快速搭建集群,上萬Linux鏡像隨意使用

Swift 5.1 通過擴展 Swift 5 的穩(wěn)定特性來增強 Swift 5的優(yōu)點,Swift 5.1 在編譯時引入模塊穩(wěn)定性。有了模塊穩(wěn)定性(Module stability),可以創(chuàng)建和共享二進(jìn)制 framework,以便兼容 Swift 的未來版本。Swift 5.1 還擴展了語言和標(biāo)準(zhǔn)庫的功能,增加了一些新特性,如屬性包裝器( property wrapper)、不透明返回類型(opaque result type)、成員查找(key path member lookup)以及字符串的新 API。總之,Swift 5.1 的新特性使設(shè)計更好的 API 和減少普通樣板代碼量變得更加容易。具體如下:

模塊穩(wěn)定性

Swift 5.1 允許創(chuàng)建二進(jìn)制 framework,且可與其他人共享。模塊穩(wěn)定性定義了一個新的基于文本的模塊接口文件,該文件里說明了二進(jìn)制框架的 API。

標(biāo)準(zhǔn)庫更新

Swift 5.1 中的標(biāo)準(zhǔn)庫包括以下新特性:

  • 支持處理和更新集合類型上的差異
  • 增加在分配數(shù)組存儲之前初始化和訪問數(shù)組的靈活性
  • 新的 API 使用 String 會更容易,包括創(chuàng)建和處理 contiguous string、用于處理 Unicode 文本的幫助程序和用于 String.Index 和 Range 的泛型構(gòu)造器
  • 用于使用 SIMD 類型的各種增量 API 改進(jìn),包括對擴展向量、reduction 操作和向量 swizzle 的支持
  • 支持需要唯一標(biāo)識符的實體的可標(biāo)識協(xié)議

其他語言和編譯器更新 

Swift 5.1 包括以下新的語言特性:

  • 屬性包裝器引入了通用語法,用于定義屬性值的自定義訪問模式,包括(但不限于)延遲初始化方法(Delayed initializer)、原子操作、特定于線程的存儲與復(fù)制即寫行為等
  • 不透明返回類型(opaque result type)允許使用泛型類型來支持符合同一協(xié)議的不同類型,或者在 api 中隱藏實現(xiàn)細(xì)節(jié)信息
  • return 關(guān)鍵字不是單個表達(dá)式閉包所必需的
  • Self 現(xiàn)在可以用于類和值類型
  • 編譯器現(xiàn)在使用默認(rèn)構(gòu)造器合成屬性的默認(rèn)值

SwiftSyntax 更新 

SwiftSyntax 已經(jīng)被重構(gòu),通過直接使用 Swift 編譯器的解析器來提高它的性能。此外,通過重構(gòu)內(nèi)部數(shù)據(jù)結(jié)構(gòu),提高了語法樹訪問和相關(guān)操作的性能,從而提高了效率。

語言服務(wù)器協(xié)議

MacOS 和 Ubuntu 的 Swift 5.1 OSS 工具包包括 SourceKit-LSP 的二進(jìn)制文件,它是 Swift 和基于 C 的語言服務(wù)器協(xié)議(LSP,Language Server Protocol)的實現(xiàn)。

Swift 5.1與 Swift 5 兼容,且兼容 Swift 4.2 和 Swift 4/4.1。詳情見發(fā)布公告。

下載:

  • Linux:Ubuntu 18.04、Ubuntu 16.04 和 Ubuntu 14.04 的官方二進(jìn)制文件可供下載。
  • 蘋果(Xcode):SWIFT 5.1 作為 Xcode 11 的一部分,此外還有工具鏈可以下載:swift.org。
  • 源碼

標(biāo)簽: [db:TAGG]

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:Nginx Unit 1.11.0 發(fā)布,動態(tài) Web 應(yīng)用服務(wù)器

下一篇:Scala.js 0.6.29 發(fā)布,將 Scala 編譯成 js 的編譯器