联系QQ:308283 电脑PC端

Swift 5.2改进软件定制编译器诊断功能

2020-03-25 16:39:46 浏览(40)

Apple自家力推的软件定制程式语言发布Swift 5.2版本,摆在改进开发者的体验,包括改善编译器诊断讯息以及程式码完成功能,也增加了除错器的可靠性,同时也改善了Swift套件管理器处理相依性的方法。

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中的套件管理器,现在不会解析仅在测试目标中使用的套件相依项目,因而提高了执行效能,同时还减少相依项目衝突的可能性,而且套件管理器现在使用一种新的策略来解析套件相依性,明显提升错误讯息的品质,以及複杂套件图中的效能。

大家都爱看
猜你喜欢
// 资讯详情 var id=431; fetch('https://mip.jihuazhan.com/js/mipData/dataPhp/get_new_detail.php?id='+id) .then(data => { return data.json() }) .then(data => { console.log(data); MIP.setData({ zanCount:data.data.items[0].clicks_number, }) }) .catch(e => { console.error(e.message); }) // 默认点踩 MIP.setData({ "unzan":Math.floor((Math.random()*3)+1) }) //监听点赞 MIP.watch('zanCount', function (zanCount) { fetch('https://mip.jihuazhan.com/js/mipData/dataPhp/thumbs.php?id='+id) .then(data => { return data.json() }) .then(data => { console.log("点赞成功") }) .catch(e => { console.error(e.message); }) })