Swift 5 发布!

Swift 5 现已正式发布!

Swift 5 是该语言发展历程中的一个重要里程碑。得益于 ABI 稳定性,Swift 运行时现在已包含在当前和未来版本的 Apple 平台操作系统中:macOS、iOS、tvOS 和 watchOS。Swift 5 还引入了新功能,这些功能是未来版本的基础,包括 String 的重新实现、运行时强制执行对内存的独占访问、新的数据类型以及对动态可调用类型的支持。

您可以试用 Paul Hudson 整理的 playground 中的一些新功能。

语言更新

稳定的 ABI 和二进制兼容性

在 Apple 平台上,Swift 5 的 ABI 现在被声明为稳定。因此,Swift 库现在已集成到未来发布的每个 macOS、iOS、tvOS 和 watchOS 版本中。您的应用将更容易构建,体积更小,因为它们不必包含这些库。

请参阅以下博客文章了解更多详情

标准库更新

Swift 5 中的标准库包括以下新功能

Swift 5 实现了来自 Swift 演进过程的以下标准库提案

其他语言和编译器更新

Swift 5 默认对调试和发布版本都强制执行对内存的独占访问(有关此更新的更多信息,请参阅 Swift 5 独占性强制执行 博客文章)。Swift 5 还支持动态可调用类型,这有助于提高与 Python、JavaScript 和 Ruby 等动态语言的互操作性。

Swift 5 还实现了来自 Swift 演进过程的以下语言提案

包管理器更新

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

Swift 5 实现了来自 Swift 演进过程的以下包管理器提案

迁移到 Swift 5

Swift 5 与 Swift 4、Swift 4.1 和 Swift 4.2 源码兼容。

为了帮助从早期版本的 Swift 迁移到 Swift 5,Apple 的 Xcode 10.2 包含了一个代码迁移工具,可以自动处理许多必要的源代码更改。还有一个 迁移指南 可供参考,指导您完成许多更改,特别是那些不太机械化且需要更直接审查的更改。

文档

上提供了 Swift 5 更新版本的 The Swift Programming Language。它也可以在 Apple Books 商店 免费获取。

平台

Linux

Ubuntu 18.04、Ubuntu 16.04 和 Ubuntu 14.04 的官方二进制文件可供下载

Apple (Xcode)

对于 Apple 平台上的开发,Swift 5 作为 Xcode 10.2 的一部分发布。

工具链也可供下载,请访问 。

源代码

Swift 5 的开发在 GitHub 上以下仓库的 swift-5.0-branch 分支中进行跟踪

标签 swift-5.0-RELEASE 指定了这些仓库中构成 Swift 5 最终版本的特定修订版本。

swift-5.0-branch 分支将保持开放,但在相同的发布管理流程下,用于累积潜在的未来错误修复“点”版本的更改。