Swift 5.2 发布 改善开发人员体验

Swift 5.2 发布 改善开发人员体验
2020年03月26日 07:43 cnBeta

原标题:Swift 5.2 发布 改善开发人员体验 来源:开源中国

Swift 5.2 发布了,此版本专注于改善开发人员体验,语言方面,Swift 5.2 在 Swift Evolution 流程中实现了以下语言建议,这些功能可能会对 Swift 作为函数式编程语言的整体能力产生较大影响。主要改进内容包括:

Swift 语法本身也发生了一些改变。通过将协议替换为结构,SwiftSyntax 的 API 中的语法节点层次结构得到了优化。因此,树访问现在变得更快,尤其是在使用 SyntaxRewriter 重写时。

Swift更新版大幅提高Swift编译程序错误信息的质量和准确性。过去编译程序会试图透过分解表达式,在子表达式中搜寻错误,以猜测错误的正确位置,官方解释,这个方法对于只利用子表达式,而无需父表达式信息,就能搜寻到的错误才有用,对于其他种类的程序开发错误是无效的。

而由于编译程序在遭遇到错误的时候,会遗留一些小线索,这些线索可以让编译程序产生更准确的诊断信息,因此从Swift 5.2开始,编译程序现在会正确的指出发生错误的程序代码位置,并且提供可供修正的信息,而不会像是在Swift 5.1中,错译信息可能含有错误的行数等误导信息,增加开发者除错困难。

Swift 5.2的程序代码完成功能也获得改进,官方减少了不必要的类型检查步骤,因而使程序代码完成功能执行速度提升,在较大的档案中,新版速度为Xcode 11.3.1版本的1.2到1.6倍,还能在不完整的字典字面常数(Dictionary literal)以及不完整的三元表示式,提供隐式成员的名字。而出现在结果中的类型也更容易阅读,必要情况才会列出父类型。

在所有支持的平台,Swift除错器LLDB的运作现在可靠许多。由于除错信息的重建类型信息现在更具弹性,使得除错器可以使用更多关于Swift类型的信息。值得注意的是,LLDB也可以从DWARF除错信息中导入C和Objective-C类型,而不需要从原始码编译Clang模块。默认情况下,当传统Clang模块导入失败时,这个配置将会作为备用路径。

Swift 5.2中的套件管理器,现在不会解析仅在测试目标中使用的套件相依项目,因而提高了执行效能,同时还减少相依项目冲突的可能性,而且套件管理器现在使用一种新的策略来解析套件相依性,明显提升错误信息的质量,以及复杂套件图中的效能。

具体的细节见更新说明:

https://swift.org/blog/swift-5-2-released

Swift开发人员
新浪科技公众号
新浪科技公众号

“掌”握科技鲜闻 (微信搜索techsina或扫描左侧二维码关注)

创事记

科学探索

科学大家

苹果汇

众测

专题

官方微博

新浪科技 新浪数码 新浪手机 科学探索 苹果汇 新浪众测

公众号

新浪科技

新浪科技为你带来最新鲜的科技资讯

苹果汇

苹果汇为你带来最新鲜的苹果产品新闻

新浪众测

新酷产品第一时间免费试玩

新浪探索

提供最新的科学家新闻,精彩的震撼图片