Swift 4.0 正式發布,更快更兼容更好用
轉自:開源中國
Swift 4 現已正式發布!Swift 4 在 Swift 3 的基礎上,提供了更強大的穩健性和穩定性,為 Swift 3 提供源碼兼容性,對標準庫進行改進,並添加了歸檔和序列化等功能。
你可以通過觀看WWDC 2017: What』s New in Swift或完整發行說明快速了解 Swift 4 功能概述。
一、語言更新
String
Swift 4 包含一個更快、更易使用的 String 實現,保留了 Unicode 的正確性,並新增了對創建、使用和管理子字元串的支持。
詳情:
SE-0163 String Revision: Collection Conformance, C Interop, Transcoding
SE-0168 Multi-Line String Literals
SE-0178 Add unicodeScalars property to Character
SE-0180 String Index Overhaul
SE-0182 String Newline Escaping
SE-0183 Substring performance affordances
集合
Swift 4 改進了創建、使用和管理集合類型。
詳情:
SE-0148 Generic Subscripts
SE-0154 Provide Custom Collections for Dictionary Keys and Values
SE-0165 Dictionary & Set Enhancements
SE-0172 One-sided Ranges
SE-0173 Add MutableCollection.swapAt(_:_:)
歸檔和序列化
Swift 4 支持結構化和枚舉類型的歸檔,並可以對外部格式(如 JSON 和 plist )進行類型安全的序列化。
詳情:
SE-0166 Swift Archival & Serialization
其他
SE-0104 Protocol-oriented integers
SE-0142 Permit where clauses to constrain associated types
SE-0156 Class and Subtype existentials
SE-0160 Limiting@objcinference
SE-0164 Remove final support in protocol extensions
SE-0169 Improve Interaction Between private Declarations and Extensions
SE-0170 NSNumber bridging and Numeric types
SE-0171 Reduce with inout
SE-0176 Enforce Exclusive Access to Memory
SE-0179 Swift run Command
二、新兼容模式
Swift 4 發布後,你可能不需要修改代碼就可以使用新版本的編譯器。編譯器支持兩種語言模式:
Swift 3.2:這種模式下,編譯器將接受使用 Swift 3.x 編譯器構建的大多數源代碼。為了提供這種級別的源兼容性,先前存在的 API(作為 Apple 提供的標準庫或 API 的一部分)的更新將不會出現在此模式中。 Swift 4 中的大部分新語言特性都以這種語言模式提供。
Swift 4.0:此模式包含所有 Swift 4.0語言和 API 更改,部分項目可能需要進行源遷移。
語言模式由 -swift-version 指定給編譯器,由 Swift 包管理器和 Xcode 自動處理。
詳情:
Migrating to Swift 4
三、包管理器升級
Swift 4 為 Swift Package Manager 引入了新的工作流功能和更完整的 API :
在 Tag 你的第一個正式版本之前,可以輕鬆多包開發,或者在多個軟體包的分支上一起工作。
可選擇控制發布給用戶的包。
新的 Package API 允許軟體包指定一些新的設置,使作者能夠更好地控制軟體包的構建方式,以及如何在磁碟上組織源碼。總的來說,用於創建包的 API 現在更為清晰,同時保留了與舊包的源兼容性。
在 macOS 上,Swift 軟體包的構建現在會在一個防止網路訪問和文件系統修改的沙箱中進行,有助於減輕惡意程序的影響。
詳情:
SE-0146 Package Manager Product Definitions
SE-0149 Package Manager Support for Top of Tree development
SE-0150 Package Manager Support for branches
SE-0158 Package Manager Manifest API Redesign
SE-0162 Package Manager Custom Target Layouts
SE-0175 Package Manager Revised Dependency Resolution
SE-0179 Swift run Command
SE-0181 Package Manager C/C++ Language Standard Support
四、相關地址
文檔
Swift 4.0 相關文檔已在官網更新,在蘋果的 iBooks 商店也可免費下載。
下載
https://swift.org/download/
覺得這條資訊有幫助?請轉發給更多人
關注技術最前線,看 IT 要聞
![](https://pic.pimg.tw/zzuyanan/1488615166-1259157397.png)
![](https://pic.pimg.tw/zzuyanan/1482887990-2595557020.jpg)
※1.43 億人信息被盜,整個美國都慌了;Linux 發行版 SUSE 誕生 25 周年
TAG:技術最前線 |