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 演进之路

    本篇主要是对《A站 的 Swift 实践》[https://ming1016.github.io/2021/05/...

  • 进阶网址

    Android消息总线的演进之路:用LiveDataBus替代RxBus、EventBus Android 存储优...

  • HTAP业界存储实现方案

    参考 畅想TiDB应用场景和HTAP演进之路Bridging the Archipelago betweenRow...

  • 饿了么:日订单量超900万的架构设计及演进之路

    饿了么:日订单量超900万的架构设计及演进之路

  • 【架构】服务端高并发分布式架构演进之路

    服务端高并发分布式架构演进之路https://segmentfault.com/a/119000001862616...

  • 微服务演进之路

    在将现有的存在的老系统转换成新系统的时候有些心得。系统就像是一辆老旧的大卡车,车身承载着搬运货物的职责。车身各个零...

  • 系统演进之路-序章

    前几日与人聊天时说到了系统的级别都是相对固定的,在什么时候使用什么样的架构,故此打算开一个坑,梳理下系统演进过程,...

  • Android 架构演进之路

    前言 最近有关Android架构的讨论越来越火热,很多Android开发者也开始关注,但却对架构相关的基础知识不甚...

  • Java IO 演进之路

    必须明白的几个概念 阻塞(Block)和非阻塞(Non-Block) 阻塞和非阻塞是在缓冲区数据没有准备就绪的情况...

  • 系统架构演进之路

    1. 系统架构演进是什么样的? 小型网站的技术栈一般是LAMP,并且直接购买别人写好的模板,修修改改+汉化,快速成...

网友评论

    本文标题:Swift 演进之路

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