为什么Swift需要明确地将Int转换为Float

时间:2014-09-19 01:00:12

标签: ios casting swift ios8

在swift playground中,我们需要明确地将Int转换为CGFloat,否则操场会说ERROR。

例如,

let someInt: Int = 3
let someFloat: CGFloat = CGFloat(someInt)

当使用CGRectMake(...)时,我们必须将Int转换为CGFloat。

为什么不能隐含发生?设计这种方式的考虑是什么? 感谢您的讨论。

1 个答案:

答案 0 :(得分:1)

Int和CGFloat是不同的类型,因此您无法在Swift中将其中一个分配给另一个。此外,在这些情况下,您实际上并没有进行投射。快速投射使用asas?关键字。相反,您正在从someInt创建一个新的CGFloat实例。

我不确定他们为什么会这样设计语言,但正如matt所说,这些选择背后的推理并不是Stack Overflow的主题。