Swift 5.7 发布
Swift 5.7 现已发布,该版本包括对语言和标准库的主要添加、对编译器的增强以提供更好的开发人员体验、对 Swift 生态系统中的工具(包括 SourceKit-LSP 和 Swift 包管理器)的改进、改进的 Windows 支持等等。
语言和标准库
Swift 5.7 语言和标准库具有多项改进:
- 通用样板代码的新速记语法,包括
if let
语句和多语句 closure type annotations - 解除长期存在的语言限制,使通用编程更加无缝
- 通过新的 annotations 和 opt-in diagnositcs 增强 data race 安全性
- 分布式环境中的 Actor 隔离
- 改进了一套现有指针 API 的可用性
- 全新的语言支持和字符串处理的 API
开发者体验
新的泛型实现
除了上述用于处理泛型的语言改进之外,类型检查器的泛型实现也从头开始重写,在正确性和性能方面都有所改进。
新的实现修复了许多长期存在的错误,主要与处理复杂的同类型需求有关,例如对集合SubSequence
关联类型的同类型需求,以及使用CaseIterable
协议的代码,该协议定义了Self.Element == Self
的要求。
新的泛型实现也提高了性能。在某些协议和关联类型的配置下,类型检查时间在 Swift 5.6 中会呈指数增长,但现在在 Swift 5.7 中是线性的。
自动引用计数改进
在 Swift 5.7 中,通过指定新规则以在允许优化时缩短变量的生命周期,ARC 行为更具可预测性、用户友好性和执行性。为了强制执行这些规则,编译器采用了一种新的内部表示来跟踪每个变量的词法范围。这涉及更新现有的优化和实现几个新的优化。现在,依赖于扩展变量生命周期的最常见编程模式是安全的,无需程序员显式使用withExtendedLifetime()
,这可以保护你免受仅在优化构建中运行时出现的难以诊断的生命周期错误。它还允许在不破坏现有资源的情况下引入更强大的优化。
Code Completion
函数调用参数、变量和全局函数的 Code Completion 现在紧密集成到 Swift 的类型检查器中。这允许 Code Completion 能够在模糊的代码或有错误的代码中提供更准确的结果。
如果在以下示例中的+
完成后,Code Completion 现在会报告 int 和 string 与周围的上下文相匹配,允许编辑器将这些结果排在高于array
的位置。
func makeIntOrString() -> Int {} func makeIntOrString() -> String {} let array = [4, 2] let int = 42 let string = "Hello World!" makeIntOrString() +
如果补全以下示例中缺少的参数,Code Completion 现在只提示 secondInt 参数标签而省略 secondString。
func add(_ firstInt: Int, secondInt: Int) {} func add(_ firstString: String, secondString: String) {} add(1, )
更多详情可查看官方博客。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Linux 6.0 rc5 已发布
Linus Torvalds 发布了 Linux 6.0 的第五个候选版本,Linux 6.0-rc5 是一个常规的中期测试版本。随机出现了各种各样的错误 / 回归修复,到目前为止, Linux 6.0 稳定版本进展顺利。 Linus 在 Linux 6.0-rc5 公告中写道: 在 rc5 时间范围内,至少在提交次数和 diffstat 中,情况看起来相当正常。 超过一半的差异是驱动程序:GPU、rdma、iommu、网络、声音、scsi ......啥都有一点。 其余的是一般的随机修复,其中 i2c 文档更新脱颖而出,还有各种 DT 更新、一些文件系统修复(btrfs 和 erofs)、一些核心网络和一些工具(性能和自测)。 Linux 6.0稳定版将在十月发布。
- 下一篇
每日一博 | 美团搜索粗排优化的探索与实践
粗排是工业界搜广推系统的重要模块。美团搜索排序团队在优化粗排效果的探索和实践中,基于业务实际场景,从精排联动和效果性能联合优化两方面优化粗排,提升了粗排的效果。本文介绍了美团搜索粗排的迭代路线、基于知识蒸馏和自动神经网络选择的粗排优化工作,希望为从事相关工作的同学带来一些启发或者帮助。 1. 前言 众所周知,在搜索、推荐、广告等大规模工业界应用领域,为了平衡性能和效果,排序系统普遍采用级联架构[1,2],如下图 1 所示。以美团搜索排序系统为例,整个排序分为粗排、精排、重排和混排层;粗排位于召回和精排之间,需要从千级别候选 item 集合中筛选出百级别 item 集合送给精排层。 从美团搜索排序全链路视角审视粗排模块,目前粗排层优化存在如下几个挑战点: 样本选择偏差:级联排序系统下,粗排离最后的结果展示环节较远,导致粗排模型离线训练样本空间与待预测的样本空间存在较大的差异,存在严重的样本选择偏差。 粗排精排联动:粗排处于召回和精排之间,粗排需要更多获取和利用后续链路的信息来提升效果。 性能约束:线上粗排预测的候选集远远高于精排模型,然而实际整个搜索系统对性能有严格的要求,导致粗排需要重...
相关文章
文章评论
共有0条评论来说两句吧...