为什么编译器告诉表达式过于复杂'

时间:2015-10-02 14:46:21

标签: xcode swift

我在Xcode中编写这段代码,你可以在游乐场试试。

let constraintSize = CGSize(width: 500.0 - 55.0 - 35.0 - 60.0 - 10.0 - 15.0, height: 9999)

编译器告诉此消息

expression was too complex to be solved in reasonable time; consider breaking up the expression into distinct sub-expressions

too complex expression in Swift

为什么编译器会说出这个愚蠢的消息,这是一个很好的想法,因为很明显它只是一个简单的计算。

2 个答案:

答案 0 :(得分:1)

编译器不喜欢将表达式作为函数参数。

我想这是一个源代码解析问题,而不是计算问题。

解决方案显而易见:

let width = 500.0 - 55.0 - 35.0 - 60.0 - 10.0 - 15.0
let constraintSize = CGSize(width: width, height: 9999)

答案 1 :(得分:1)

嗯,显然这是一个语言问题。编译器应该能够执行这个简单的表达式。但是,在某些情况下,观察到长表达式会占用100%的CPU导致死锁。

查看this threadthis thread了解详情。猜猜你已经知道你的情况下的解决方案,所以不发布它:)。

相关问题