cgfloat * 2编译,cgfloat *变量,其中变量为整数失败



我必须将我的int包装在 CGFloat()中才能在swift 2.3

中编译

如果我只是做了* 2,则会编译。为什么会发生这种情况?这是否固定在Swift 3?

var multiplier = CGFloat(3)      
let y = collectionView.frame.origin.y + (cellSize() * multiplier)

Swift不直接支持混合类型算术。检查Swift中2的类型是什么,这可能不是您假设的。您对CGFloat()的使用正在转换值,因此*的操作数具有相同的类型。

hth

类型推理。当您写出 * 2时,没有明确声明它,int Swift将其侵入为cgfloat。但是,当您已经声明它为int时,您不能用int。

将CGFloat乘

最新更新