Apple宣布正式釋出Swift 4.1 ,這次添加了新的語(yǔ)言功能、建置選項(xiàng)以及一些Swift套件管理器的強(qiáng)化,現(xiàn)在Xcode 9.3 beta也已經(jīng)支持Swift 4.1,開(kāi)發(fā)者可以先嚐鮮試試新功能。
語(yǔ)言本身的功能,其中重要的更新便是泛型的擴(kuò)充,讓Swift的泛型系統(tǒng)有更完整的表達(dá)方法。Swift 4.1在標(biāo)準(zhǔn)函式庫(kù)中加入條件一致性,其所表達(dá)的概念為,泛型類(lèi)型只有在其參數(shù)類(lèi)型符合特定要求時(shí)才符合特定協(xié)定。
在Swift 4.0中,雖然Array可以使用等號(hào)比較運(yùn)算子==,Optional卻不行,而等號(hào)比較運(yùn)算子也不支持兩個(gè)Optional操作數(shù),因此let a = ["1","2","x"].map a == [1,2,nil]這樣的寫(xiě)法,會(huì)收到編譯器的錯(cuò)誤警告。
但是現(xiàn)在Swift 4.1,已經(jīng)可以修正這樣的問(wèn)題,開(kāi)發(fā)者可以讓原本無(wú)法使用等號(hào)比較運(yùn)算子的型態(tài),透過(guò)實(shí)作后也能使用。以O(shè)ptional為例,開(kāi)發(fā)者可以先為Optional實(shí)做等號(hào)比較運(yùn)算子,撰寫(xiě)extension Optional: Equatable where Wrapped: Equatable {}程式碼,便能讓Optional像Array一樣使用等號(hào)比較運(yùn)算子。
在Swift 4.1中受惠于條件一致性,Optional、Array和Dictionary只要值與元素符合,就能使用等號(hào)比較運(yùn)算子和哈希表。而這個(gè)方法也適用于可編碼屬性,現(xiàn)在嘗試編碼一個(gè)無(wú)法編碼的型態(tài),會(huì)得到錯(cuò)誤訊息而不會(huì)困在Runtime階段的執(zhí)行陷阱。
編譯器在之前版本支持速度最佳化后,Swift 4.1還支持程式碼容量最佳化。新的最佳化選項(xiàng)可以選擇對(duì)全模組或是單一檔案編譯最佳化,Apple表示,全模組最佳化的效果較佳,檔案大小能減少5%到30%。 另外,套件管理器現(xiàn)在可以正確的解決,來(lái)自SSH或是HTTP不同協(xié)定套件圖的相依性問(wèn)題,并能更快的處理共享相依性。
資訊中心
生活中心
房產(chǎn)資訊
蕪湖車(chē)市
視覺(jué)推薦