Swift-Binary 运算符不能应用于两个"Double"操作数



>我的代码中似乎收到了一个相对常见的错误,但是其他问题的解决方案示例似乎与我的情况不太相关。例如;(二进制运算符"/"不能应用于两个"双精度"操作数)

    let variable1 = Double()
    let variable2 = Double()
    let array = [5, 10]
    var variable3 = Double()
    func function() {
            let variable1 = 50 / variable2
            let variable3 = Double(arc4random_uniform(UInt32(Double(array.count))))
            let scaleAction = SKAction.scale(by: variable1 * variable3, duration: 1)

无论如何,这就是所有相关代码。无论出于何种原因,我收到一个错误,专注于最后一行的乘法星号,说"二进制运算符"*"不能应用于两个"双精度"操作数。为什么不能?有没有办法解决这个问题?

提前谢谢。

错误消息有点误导。 真正的问题是scale(by:duration:)CGFloat作为尺度:

open class func scale(by scale: CGFloat, duration sec: TimeInterval) -> SKAction

所以,你需要通过一个CGFloat. 您可以确保variable1variable3 CGFloat,也可以使用 CGFloat 构造函数将其从 Double 转换:

let scaleAction = SKAction.scale(by: CGFloat(variable1 * variable3), duration: 1)

最新更新