在swift playground中,我们需要明确地将Int转换为CGFloat,否则操场会说ERROR。
例如,
let someInt: Int = 3
let someFloat: CGFloat = CGFloat(someInt)
当使用CGRectMake(...)时,我们必须将Int转换为CGFloat。
为什么不能隐含发生?设计这种方式的考虑是什么? 感谢您的讨论。
答案 0 :(得分:1)
Int和CGFloat是不同的类型,因此您无法在Swift中将其中一个分配给另一个。此外,在这些情况下,您实际上并没有进行投射。快速投射使用as
或as?
关键字。相反,您正在从someInt创建一个新的CGFloat实例。
我不确定他们为什么会这样设计语言,但正如matt所说,这些选择背后的推理并不是Stack Overflow的主题。