Swift 演进之路

作者: 星光社的戴铭 | 来源:发表于2022-02-11 17:11 被阅读0次

    本篇主要是对《A站 的 Swift 实践》文章中的一幅配图做了详细的扩展,能够更加全面和详细了解 Swift 语言的发展,文章中提到的 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

    相关文章

      网友评论

        本文标题:Swift 演进之路

        本文链接:https://www.haomeiwen.com/subject/isqzkrtx.html