译者 | Sergio De Simone
翻译者 | 武川
策画 | 丁晓昀
Swift 的新一代版 全力支持将要来临的新优点,让开发者能已经开始采用将在 Swift 6 中变为平衡版的优点。除此之外,它还提供更多了一种方式,让开发者能在晚期作业系统中采用新机能。
Swift 5.8 或许全力支持将要来临的词汇优点,主要是为的是让开发者能已经开始为流程北迁做准备。Swift 项目组核心成员 Alexander Sandberg 说,考虑到 Swift 6 的许多优点造成了某种意义的源码不相容,这一点特别重要。除此之外,全力支持新优点还能协助苹果公司搜集晚期使用者的意见反馈。
捷伊C++象征-enable- coming-feature X能控制与否投入使用对将要来临的优点的全力支持,其中X是要投入使用的优点。目前,在 Swift 5.8 中,有 4 个将要来临的优点能特异性地投入使用:隐晦魔力配置文件、紧追不舍闭包前向扫描器相匹配、存在类别 any,以及 流程词汇字面上量。
在采用将要来临的优点以后,能采用追加的#if 检查和保证它的确需用:#if hasFeature(ImplicitOpenExistentials)。需要的时候,能将它与compiler(>=x.y) 检查和一起采用。
Swift 5.8 还导入了对@backDeployed特性的全力支持,目地是为的是方便快捷开发者将新机能向后移殖到架构的旧版。比如,能通过扩充加进新机能,并采用不可否认的@available和追加的@backDeployed特性进行注释:
extension FrameworkAPI { @available(FrameworkAPIVersion 1.0, *) @backDeployed(before: FrameworkAPIVersion 2.0) public func newCapability(…) -> ResultType { … } }
在所提供更多的实例中,newCapability表达式仅在FrameworkAPI的 2.0 版原生植物全力支持,但是采用@backDeployed特性,开发者能提供更多该机能的实现,并转化成到架构的早先版中。
这个新优点意在方便快捷开发者建立灵活性库,因此根本无法应用于表达式、方式、负号和排序特性。比如,这种监督机制不全力支持新类别。除此之外,向后布署的函数体必须严格遵守与@inlinable表达式完全相同的管制,比如,它根本无法提及应用流程可出访的声明,如public和@usableFromInline声明。
Swift 5.8 带来的另一项重大变化修改结果构建器实现,改进了它的编译时性能、代码补全结果和诊断。具体来说,新实现利用了 Swift 5.7 的 扩充多语句闭包推断,优化了C++类别推断和错误消息。特别是,它 移除 了在结果构建器中声明局部变量的几个限制,比如需要有初始化器,而且没有提供更多对排序变量、观察器和特性封装器的全力支持。
Swift 5.8 还带来了很多变化,要了解完整细节,请查阅官方公告。
原文链接:
https://www.infoq.com/news/2023/04/swift-5-8-released/
相关阅读:
苹果公司现已全力支持 Swift 包索引 (https://www.infoq.cn/article/AHUamwkJ3fqljoliPKHa)
Rust、Go 和 Swift 在性能和并发性方面有何差异?(https://xie.infoq.cn/article/e6e0811181133d4895e2041ac)
Swift 2023:所有权、宏和 C++ 互操作 (https://www.infoq.cn/article/fm6b2sg8QHUrDS6GhK48)