swift - Swift 类型检查需要很长时间
问题描述
我已将标志添加-Xfrontend -warn-long-expression-type-checking=50
到我的 Swift 项目中,以查看花费的时间太长。我有以下表达式:
let s: String = "1234"
let t: Int? = Int(s)
在Int(s)
我收到警告Expression took 52ms to type-check (limit: 50ms)
。我只是想知道为什么这需要超过 50 毫秒才能弄清楚,因为我指定了所有类型。
解决方案
如果我们尝试运行这个初始化程序:
let t: Int? = Int(s, radix: 10)
我们可以看到类型检查要快得多。
查看Int
代码完成中的初始化程序,我可以看到有几个需要 a String
,所以我的猜测是编译器只是试图根据参数解析一个并返回Int?
,这需要更长的时间
当我们提供 radix 时,我们所做的是限制可能选择的数量,这就是代码类型检查更快的原因。当然,这纯粹是我的猜测!
推荐阅读
- flutter - 颤振DropDownButton删除箭头图标?
- java - Spring Batch + Hibernate:解决多对多数据迁移
- reactjs - useState 在异步之前加载不更新
- java - 如何将数据从 JSP 插入 MySQL 数据库?
- codeigniter - 按钮提交时匹配同级玩家
- r - 如何摆脱时间戳并将列更改为日期格式R
- azure-durable-functions - 使用 SubOrchestratorFunction
- mysql - 从表和变量中选择
- express - Express-validator:条件验证
- java - JAXB 中的模式位置对排序