Swift 5.3 发布

栏目: 软件资讯 · 发布时间: 3年前

内容简介:Swift 5.3 稳定版已于上周正式发布,此版本继续专注于语言改进、提升开发者体验以及扩展 Swift 生态系统,以让 Swift 适用于更多场景。Amy Tsai 手绘的素描笔记介绍了 Swift 5.3 主要新特性: 语言和标准库 新特性...

Swift 5.3 稳定版已于上周正式发布,此版本继续专注于语言改进、提升开发者体验以及扩展 Swift 生态系统,以让 Swift 适用于更多场景。Amy Tsai 手绘的素描笔记介绍了 Swift 5.3 主要新特性:

Swift 5.3 发布

语言和标准库

新特性和改进

Swift 5.3 带来了许多语言方面的改进,从而改善了编写 Swift 代码的体验。这些更新通过减少样板代码和冗余代码,并在可能使用的库中定义更多功能来帮助开发者成为更有生产力的 Swift 程序员。

Swift Evolution 流程中的提案在 Swift 5.3 中得以实现:

  • SE-0263 - Add a String Initializer with Access to Uninitialized Storage

  • SE-0266 - Synthesized Comparable conformance for enum types

  • SE-0267 - where clauses on contextually generic declarations

  • SE-0268 - Refine didSet Semantics

  • SE-0269 - Increase availability of implicit self in @escaping closures when reference cycles are unlikely to occur

  • SE-0276 - Multi-Pattern Catch Clauses

  • SE-0277 - Float16

  • SE-0279 - Multiple Trailing Closures

  • SE-0280 - Enum cases as protocol witnesses

  • SE-0281 - @main: Type-Based Program Entry Points

  • SE-0282 - Clarify the Swift memory consistency model ⚛︎

  • SE-0285 - Ease the transition to concise magic file strings

  • SE-0286 - Forward-scan matching for trailing closures

Swift 5.3 还修复了几个编译器限制的问题:

  • SR-75 - Unapplied references to protocol requirements are now supported

  • SR-7083 - lazy properties can define didSet and willSet accessors

  • SR-8814 - Generic classes can use default implementations of protocol requirements when conforming to protocols with associated types

改进 runtime 性能

Swift 5.3 显著改善了二进制代码大小和 runtime 内存使用情况,这些改进也在多个项目中得到了验证:

  • 从 Swift 4 开始,Apple 的 Swift 团队一直通过 iOS 附带的 UIKit 应用(用 Objective-C 编写)来测量 Swift 重写的二进制代码大小。Swift 4 的代码量约为 Objective-C 版本的 2.3 倍,到了 Swift 5.3 下降到 1.5 倍以下

  • 基于 SwiftUI 的开源应用 MovieSwiftUI,与 Swift 5.1 相比,使用 Swift 5.3 重写的应用逻辑代码量减少了 40% 以上

  • 在创建包含 400 个模型对象的数组的测试应用程序中,由于 runtime 开销而导致的堆内存比 Swift 5.1中使用的堆内存少 2/3

开发体验

改进编辑代码时的缩进效果

此版本全面修订了 SourceKit 中的自动缩进实现,在此过程中修复了约 50 个反馈报告。特别是以下情况的自动缩进得到了很大改进:

  • 涉及闭包的链式方法调用

  • 调用跨越多行的参数和集合元素

  • 多行的ifguardwhile条件

代码补全

  • 与 Swift 5.2 相比,现在在函数体内重复执行代码补全调用的速度提升了 15 倍。这是通过在同一文件中重用先前完成的一些计算来实现的。这些优化将在 Xcode 和 SourceKit-LSP 中均可用

  • Swift 代码补全现在支持用户定义的 nominal 类型的可调用值 (SE-0253)。代码补全显示了在基本表达式后加上圆括号后的调用签名

优化构建时间

Swift 5.3 进一步优化了代码补全性能和质量:

  • 通过避免跨源文件的重复编译工作,并更准确地标识与以前的构建相比未更改的代码,从而缩短增量构建时间

  • 通过修复编译器的行为对声明顺序或嵌套敏感的多种情况,提高了正确性

  • 使用从另一个库导入的具有大量属性和函数的类型的代码,可以更快地进行编译

此外还有关于调试、Swift 包管理以及编译器诊断方面的更新,详情查看 发布公告


以上所述就是小编给大家介绍的《Swift 5.3 发布》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

How to Solve It

How to Solve It

Zbigniew Michalewicz、David B. Fogel / Springer / 2004-03-01 / USD 59.95

This book is the only source that provides comprehensive, current, and detailed information on problem solving using modern heuristics. It covers classic methods of optimization, including dynamic pro......一起来看看 《How to Solve It》 这本书的介绍吧!

SHA 加密
SHA 加密

SHA 加密工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具