内容简介:Swift 5.3 稳定版已于上周正式发布,此版本继续专注于语言改进、提升开发者体验以及扩展 Swift 生态系统,以让 Swift 适用于更多场景。Amy Tsai 手绘的素描笔记介绍了 Swift 5.3 主要新特性: 语言和标准库 新特性...
Swift 5.3 稳定版已于上周正式发布,此版本继续专注于语言改进、提升开发者体验以及扩展 Swift 生态系统,以让 Swift 适用于更多场景。Amy Tsai 手绘的素描笔记介绍了 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 forenum
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 definedidSet
andwillSet
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 个反馈报告。特别是以下情况的自动缩进得到了很大改进:
-
涉及闭包的链式方法调用
-
调用跨越多行的参数和集合元素
-
多行的
if
,guard
和while
条件
代码补全
-
与 Swift 5.2 相比,现在在函数体内重复执行代码补全调用的速度提升了 15 倍。这是通过在同一文件中重用先前完成的一些计算来实现的。这些优化将在 Xcode 和 SourceKit-LSP 中均可用
-
Swift 代码补全现在支持用户定义的 nominal 类型的可调用值 (SE-0253)。代码补全显示了在基本表达式后加上圆括号后的调用签名
优化构建时间
Swift 5.3 进一步优化了代码补全性能和质量:
-
通过避免跨源文件的重复编译工作,并更准确地标识与以前的构建相比未更改的代码,从而缩短增量构建时间
-
通过修复编译器的行为对声明顺序或嵌套敏感的多种情况,提高了正确性
-
使用从另一个库导入的具有大量属性和函数的类型的代码,可以更快地进行编译
此外还有关于调试、Swift 包管理以及编译器诊断方面的更新,详情查看 发布公告。
以上所述就是小编给大家介绍的《Swift 5.3 发布》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- NPM包(模块)发布、更新、撤销发布
- 有赞灰度发布与蓝绿发布实践
- 【重磅发布】Linkis 0.10.0 版本发布
- BeetlSQL 3.0.9 发布,Idea 插件发布
- 贝密游戏 0.7.0 发布,发布斗地主
- 【重磅发布】DataSphere Studio 0.9.0 版本发布
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
C++标准模板库编程实战
Ivor Horton / 郭小虎、程聪 / 2017-1
《C++标准模板库编程实战》介绍最新的C++14标准的API、库和扩展,以及如何将它们运用到C++14程序中。在书中,作者Ivor Horton 则阐述了什么是STL,以及如何将它们应用到程序中。我们将学习如何使用容器、迭代器,以及如何定义、创建和应用算法。此外,还将学习函数对象和适配器,以及它们的用法。 阅读完本书之后,你将能够了解如何扩展STL,如何定义自定义类型的C++组件,你还将能够......一起来看看 《C++标准模板库编程实战》 这本书的介绍吧!