CGFloat * 2编译,CGFloat *变量,其中变量是一个整数失败

时间:2017-06-08 01:58:38

标签: swift

我必须在CGFloat()中包含我的内容以在Swift 2.3中编译

如果我刚做* 2,那么就会编译。为什么会这样? 这是在Swift 3中修复的吗?

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

2 个答案:

答案 0 :(得分:2)

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

HTH

答案 1 :(得分:1)

类型推断。当你写出* 2而没有明确地声明它是一个int Swift推断它是一个CGFloat。但是,当你已经将它声明为int时,你不能将CGFloat与Int相乘。