Swift 5.1 已发布!

Swift 5.1 现已正式发布!

Swift 5.1 在 Swift 5 的优势基础上构建,通过引入模块稳定性,将语言的稳定特性扩展到编译时。借助模块稳定性,现在可以创建和共享二进制框架,这些框架可以与 Swift 的未来版本一起使用。Swift 5.1 还通过诸如属性包装器、不透明结果类型、键路径成员查找、适当集合类型的差异化以及 String 的新 API 等新功能扩展了语言和标准库的功能。总而言之,Swift 5.1 的新功能使设计更好的 API 变得更容易,并减少了常见的样板代码量。

您可以在 Doug Gregor 在 Swift Unwrapped 播客的 第 79 集 中了解有关 5.1 版本的设计考虑因素的更多信息。您也可以尝试 Paul Hudson 整理的这个 playground 中的一些新功能。

模块稳定性

Swift 5.1 支持创建二进制框架,这些框架可以与其他人共享,并利用该语言对模块稳定性的新增支持。模块稳定性定义了一个新的基于文本的模块接口文件,该文件描述了二进制框架的 API,使其可以与使用不同编译器版本的代码一起编译。

该版本还包括支持库演进的功能。有关该语言新增功能的更多信息,请参阅 Swift Evolution 提案 库演进

以下博客文章和视频提供了有关 ABI 稳定性、模块稳定性和库演进的更多详细信息

标准库更新

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

Swift 5.1 实现了 Swift Evolution 流程中的以下标准库提案

其他语言和编译器更新

Swift 5.1 包括以下新的语言功能

Swift 5.1 实现了 Swift Evolution 流程中的以下语言提案

SwiftSyntax 更新

SwiftSyntax 已经过重新架构,重点是通过直接使用 Swift 编译器的解析器来显着提高其性能。此外,通过重新架构内部数据结构以使其更高效,提高了语法树访问和相关操作的性能。

语言服务器协议

适用于 macOS 和 Ubuntu 的 Swift 5.1 OSS 工具链软件包包括 SourceKit-LSP 的二进制文件,它是 Swift 和基于 C 的语言的 语言服务器协议 (LSP) 的实现。

迁移到 Swift 5.1

Swift 5.1 在源代码上与 Swift 5 兼容,并支持 Swift 4.2 和 Swift 4/4.1 的兼容模式。

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

文档

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

平台

Linux

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

Apple (Xcode)

为了在 Apple 平台上进行开发,Swift 5.1 作为 Xcode 11 的一部分发布。

工具链也可从 下载

源代码

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

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

swift-5.1-branch 分支将保持开放,但在相同的发布管理流程下,以累积下一个版本的更改。