Swift 5 发布了,这是一个重要里程碑。

此版本终于迎来了 ABI 稳定,因此 Swift 运行时现在可以引入到 Apple 平台各类操作系统的各个版本中,包括 macOS、iOS、tvOS 与 watchOS。

Swift 5 还引入了构建块的新功能,包括重新实现 String、在运行时对执行内存的独占访问与新数据类型,以及对动态可调用类型的支持。

Swift 5 兼容 Swift 4、Swift 4.1 和 Swift 4.2,Xcode 10.2 中包含了一个代码迁移器,可以自动处理许多迁移需要用到的源码更改。

语言更新

稳定的 ABI 与二进制兼容性

ABI 已经稳定,因此 Swift 库现在可以整合到每个 macOS、iOS、tvOS 和 watchOS 版本中,应用将更容易构建,并且体积更小,因为它们不必包含这些库。

标准库更新

Swift 5 中的标准库包括以下新特性:

使用 UTF-8 编码重新实现的 String 可以产生更快的代码。之前我们已经报导过:Swift 5将使用UTF-8作为首选字符串编码

改进了对字符串中原生文本的支持

标准库添加 Result 和 SIMD 矢量类型

增强了字符串插值功能,为从数据构造文本提供了更多灵活性

改进了 Dictionary 和 Set 的性能

其它语言和编译器更新

Swift 5 默认为调试和发布版本强制执行对内存的独占访问。此外 Swift 5 支持动态可调用类型,有助于提高与 Python、JavaScript 和 Ruby 等动态语言的互操作性。

包管理器更新 Swift 5 为 Swift Package Manager 带来了许多新功能,包括依赖镜像、特定于目标的构建设置、自定义部署目标与生成代码覆盖率数据的能力。此外,swift run 命令现在可以在 REPL 中导入库而无需构建可执行文件。