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

Swift-Binary operator cannot be applied to two "Double" operands

我在我的代码中收到了一个似乎相对常见的错误,但其他问题的解决方案示例似乎与我的情况不太相关。例如; ()

    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)

这就是所有相关代码。无论出于何种原因,我收到一个错误,重点放在最后一行的乘法星号上,说 "Binary operator "*" 不能应用于两个 "Double" 操作数。为什么不能呢?有没有我可以解决这个问题吗?

提前致谢。

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

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

所以,你需要传递一个CGFloat。您可以努力确保 variable1variable3CGFloat,或者您可以使用 CGFloat 构造函数将其从 Double 转换:

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