在快速游乐场中,我们需要将Int强制转换为CGFloat,否则游乐场将显示ERROR。

例如,

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


使用CGRectMake(...)时,必须将Int强制转换为CGFloat。

为什么不能隐式发生?这样设计的考虑因素是什么?
感谢您在这里的讨论。

最佳答案

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

我不确定为什么他们会这样设计语言,但是正如马特所说,这些选择背后的原因与Stack Overflow无关。

关于ios - 为什么Swift需要显式将Int转换为Float,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25924746/

10-13 09:27