ldi*_*ual 6 optional swift forced-unwrapping unwrap
有没有办法(通过编译器标志或脚本)检测Swift项目中的强制解包?
我正在考虑这样的事情:
let b = a as! B
let c = a!
a!.method()
Run Code Online (Sandbox Code Playgroud)
例如,不会触发误报var a: A!.
正如评论中所述,可以设计正则表达式搜索来捕获 postfix 的大多数用法!。(如果你小心的话,你应该能够让它忽略大部分冒号类型名称爆炸的使用,这样你就不会从 IUO 类型声明中得到噪音。)
不过,这已经是最好的了,而且它是不完整的 \xe2\x80\x94 例如,每当您调用返回 IUO 类型的 API 并访问其结果而不检查可选值时,您都可以这样做强制解开,代码中没有显式地有任何爆炸。
\n\n任何试图一致警告未经检查的解包的工具都需要对 Swift 的类型系统、语法和类型推断规则有相当深入的了解。实际上,您唯一可以获得此类知识(并正确掌握)的地方是编译器内部。因此,您可能最好向 Apple 提交功能请求或与开源项目合作。
\n| 归档时间: |
|
| 查看次数: |
418 次 |
| 最近记录: |