Swift 4正式發布,新功能概覽
Swift最新的主要版本提供了針對語言本身以及標準庫的大量改動和更新,最重要的變化包括新增的String功能、擴展集合、歸檔和序列化等。
Swift 4中,String已全面遵循Collection協議,因此可直接迭代並提供了集合與序列類似的全部條件,例如:
此外String切片現已成為下標(Substring)類型的實例,遵循StringProtocol,可按照與String類型完全一致的方式使用。
這一改動有助於改善切片性能,因為Substring已經不再需要複製Stri作可ng切片。複製操延遲至Substring轉換為String並被某些API使用的時候進行。
String的其他功能還包括:支持Unicode 9以及多行Literal。
Swift 4還改進了用戶創建、使用和管理集合類型的方式,例如Dictionary和Set。
首先,用戶現在已經可以通過元祖(Tuple)序列創建字典,並指定如果遇到重複內容後的處理方式,而這一操作可在創建字典或合併兩個字典的過程中進行:
Dictionary和Set現在可以篩選成為原始類型的另一個對象,而不再篩選為Array。此外字典也已經可以支持新的mapValues方法:
關於字典還有一個實用的改進:在訪問其元素時可以指定默認值,這樣便可讓下標運算符返回Non-opt類型:
Swift 4中所有Collection類型均支持泛型下標(Generic subscript)。這意味著我們可以定義下列JSON結構,不將索引的結果拋給字典:
對於該語言還有一個廣受好評的改進:對歸檔和序列化的支持,以前這需要通過NSObject和NSCoding處理,無法用於struct和enum類型。
但Swift 4通過Codable協議增加了對所有類型的序列化支持。Ole Begemann對Swift 4的編碼和解碼提供了入門簡介。例如我們可以這樣定義一個Codable類型:
最後,Swift 4提供了兩種語言模式,可通過-swift-version編譯器選項進行選擇。在Swift 3.2模式中,編譯器可接受大部分使用Swift 3.x編譯器編譯的源代碼。
在該模式下,大部分Swift 4語言功能均可用,但針對之前已有API的各種更新均不可用。在Swift 4.0模式中,我們可以使用Swift 4的全部功能,但可能需要改動部分源代碼,這一過程通常可通過Xcode的遷移助理實現。
Swift 4還有很多改進,建議閱讀Swift維護者Ted Kremenek的公告,並通過Ole Begemann在互動式Playground中提供的所有新功能演示來體驗。
Swift 4已包含在Xcode 9中,並可手工安裝到Xcode 8.3中使用。
點擊展開全文
※排版?我的頭疼病又犯了!
※What your code looks like?
※webpack:從入門到真實項目配置
※三分鐘弄懂iPhone X 設計尺寸和適配
※編寫整潔的 PHP 代碼
TAG:優才學院 |