Swift 演進之路

本篇主要是對《A站 的 Swift 實踐》文章中的一幅配圖做了詳細的擴展,能夠更加全面和詳細了解 Swift 語言的發展,文章中提到的 Swift 各版本的語法示例代碼,及本文內容都可以在 戴銘的小冊子里對應欄目里找到,這個假期我也對小冊子里欄目內容進行了些更新和補充。《A站 的 Swift 實踐》文章的那個演進配圖如下:

文章內容如下:

Swift 1.1

  • countElements() 改成了 count()。
  • @NSApplicationMain 可以在 macOS 上使用。

Swift 1.2

  • 引入 Set 類型。
  • if let 可以放到一起,使用逗號分隔。
  • 新增 zip() 和 flatMap()。
  • 類增加靜態方法和靜態屬性,使用 static 關鍵字描述。
  • as! 用于類型強轉,失敗會崩潰。
  • @noescape 用于描述作為參數閉包,用來告訴 Swift 閉包將在函數返回前使用。
  • 常量可以延后初始化。

Swift 2.0

  • 增加 guard 關鍵字,用于解可選項值。
  • defer 關鍵字用來延遲執行,即使拋出錯誤了都會在最后執行。
  • ErrorType 協議,以及 throws、do、try 和 catch 的引入用來處理錯誤。
  • characters 加上 count,用來替代 count()。
  • 用 #available 用來檢查系統版本。

Swift 2.1

  • 字符串插值可以包含字符串字面符號。

Swift 2.2

  • FILE, LINEFUNCTION 換成 #file,#line 和 #function。
  • 廢棄 ++ 和 -- 操作符。
  • C 語言風格 for 循環廢棄。
  • 廢棄變量參數,因為變量參數容易和 inout 搞混。
  • 廢棄字符串化的選擇器,選擇器不再能寫成字符串了。
  • 元組可直接比較是否相等。

Swift 3.0

  • 規范動詞和名詞來命名。
  • 去掉 NS 前綴。
  • 方法名描述參數部分變為參數名。
  • 省略沒必要的單詞,命名做了簡化呢。比如 stringByTrimmingCharactersInSet 就換成了 trimmingCharacters。
  • 枚舉的屬性使用小寫開頭。
  • 引入 C 函數的屬性。

Swift 3.1

  • 序列新增 prefix(while:) 和 drop(while:) 方法,順序遍歷執行閉包里的邏輯判斷,滿足條件就返回,遇到不匹配就會停止遍歷。prefix 返回滿足條件的元素集合,drop 返回停止遍歷之后那些元素集合。
  • 泛型適用于嵌套類型。
  • 類型的擴展可以使用約束條件,比如擴展數組時,加上元素為整數的約束,這樣的擴展就只會對元素為整數的數組有效。

Swift 4.0

Swift 4.1

Swift 4.2

Swift 5.0

Swift 5.1

Swift 5.2

Swift 5.3

Swift 5.4

Swift 5.5

上面各個版本的語法更新的內容和更多代碼的示例都可以在 Swift 小冊子里查看,內容力求更全,描述力求更簡潔,more big, more small。不想下載 app 也可以查看《戴銘的 Swift 小冊子4.0》這篇,內容也同步做了更新和補充(內容達十五萬字,值得你收藏和分享)。我對小冊子內容查看樣式視覺做了更新,排版用了赫蹏(hètí),字體是霞鶩文楷,更新了代碼高亮風格,內容看起來更舒服。還有 icon 也進行替換,不用再對著枯燥的 SFSymbol 和我先前臨時從以前圖里隨便挑的那條小狗 App icon 看了。


小冊子現在可以直接下載 dmg 使用了,4.3下載地址:戴銘的小冊子4.3.dmg.zip

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。