我必须在CGFloat()
中包含我的内容以在Swift 2.3中编译
如果我刚做* 2
,那么就会编译。为什么会这样?
这是在Swift 3中修复的吗?
var multiplier = CGFloat(3)
let y = collectionView.frame.origin.y + (cellSize() * multiplier)
答案 0 :(得分:2)
Swift不直接支持混合型算术。检查Swift中2
的类型,可能不是你所假设的。您对CGFloat()
的使用正在转换该值,因此*
的操作数具有相同的类型。
HTH
答案 1 :(得分:1)
类型推断。当你写出* 2而没有明确地声明它是一个int Swift推断它是一个CGFloat。但是,当你已经将它声明为int时,你不能将CGFloat与Int相乘。