
Swift 6.2中最显著的新特性是易用的并发性,这是一种默认的、低复杂度的方法,用于编写安全的并发应用程序。Swift 6.2 还引入了一些新特性以简化低级别的编程,包括 InlineArray 和 Span 类型,并增加了对 WebAssembly 的支持。
采用易用并发性的程序默认是单线程的,这对于脚本和 UI 代码来说很合适,并且为访问可变状态的异步代码提供了更大的弹性,这里的访问方法是在调用者的执行器线程上运行它。当你想要确保一个异步方法在并发线程池中运行,而不是在调用者的上下文中运行时,你可以使用 @concurrent 注解。InfoQ 之前报道了苹果的 WWDC 2025 上宣布的易用并发性,提供了更多的细节和背景。
Swift 6.2 还引入了两个新特性,旨在编写安全、低级别的代码,具有可预测的性能和最小的开销。第一个是 InlineArray,一个固定大小的数组,具有内联存储,避免了额外的堆分配。声明内联数组的语法是:var inlineArray: [50 of String]。第二个特性是 Span,一个安全的替代缓冲区指针来访问连续内存。
Span 确保在使用内存时内存保持有效,从而维护内存安全。这些保证在编译时检查,没有运行时开销,并定义了指针固有的内存安全问题,例如使用后释放的错误。
Swift 6.2 对低级编程的另一个增强是严格的内存安全性,这是一个可选模式,旨在检测代码库中的不安全构造,使开发人员可以替换它们或显式承认它们的使用。
Swift 6.2 还引入了对编译到 Wasm 的支持,这要归功于新的Wasm SDK。
Swift 对 WebAssembly 的支持最初是一个社区项目。任何指令集都大大受益于标准化的 ABI 和系统接口,从一开始,Swift 中的 Wasm 支持就针对 WebAssembly 系统接口,这使得将 Swift 核心库移植到这个平台变得更加容易。
swift 命令行编译器既可以从 Swift 源文件构建 Wasm 可执行文件,也可以使用WasmKit运行它,WasmKit 是一个独立的、可嵌入的 WebAssembly 运行时。当程序员使用嵌入式Swift时,Wasm 交叉编译器可以产生显著更小的二进制文件,嵌入式 Swift 排除了运行时反射、SomeClass.Type 等元类型以及所有依赖于它的标准库特性,如 Codable、非最终泛型方法、弱引用和无主引用以及其他增加语言复杂性的特性。
Swift 6.2 包括许多其他增强,这里无法一一介绍,例如基于诊断组的精确警告控制、更快的宏处理、改进的异步代码调试和扩展的 Swift 测试 API。有关详细信息,请务必阅读官方公告。
原文链接:
Swift 6.2 Released with Improved Concurrency, Safer Raw-Memory Access, Wasm Support and More
评论