在快速游乐场中,我们需要将Int强制转换为CGFloat,否则游乐场将显示ERROR。
例如,
let someInt: Int = 3
let someFloat: CGFloat = CGFloat(someInt)
使用CGRectMake(...)时,必须将Int强制转换为CGFloat。
为什么不能隐式发生?这样设计的考虑因素是什么?
感谢您在这里的讨论。
最佳答案
Int和CGFloat是不同的类型,因此您不能在Swift中将一个分配给另一个。另外,在这些情况下,您实际上并没有进行投射。快速强制转换使用as
或as?
关键字。相反,您是从someInt创建一个新的CGFloat实例。
我不确定为什么他们会这样设计语言,但是正如马特所说,这些选择背后的原因与Stack Overflow无关。
关于ios - 为什么Swift需要显式将Int转换为Float,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25924746/