有没有办法(通过编译器标志或脚本)检测
Swift项目中的强制解包?
我正在考虑这样的事情:
let b = a as! B let c = a! a!.method()
没有触发var a:A的误报!例如.
解决方法
正如评论中所指出的,可以制作正则表达式搜索以捕获postfix的大部分用法! (如果你小心,你应该能够忽略冒号冒号的大多数用法,这样你就不会从IUO类型的声明中得到噪音.)
虽然这和它一样好,并且它是不完整的 – 例如,每次调用返回IUO类型的API并在不检查可选项的情况下访问其结果时,您可能会执行强制解包而不显式地执行任何操作你的代码中的刘海.
任何试图警告unchecked unwraps的工具都需要对Swift的类型系统,语法和类型推理规则有相当深入的了解.而且真正唯一可以拥有这些知识(并且正确使用)的地方就在编译器中.所以你可能最好离开filing a feature request to Apple或使用open source project.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。