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
。您可以努力确保 variable1
和 variable3
是 CGFloat
,或者您可以使用 CGFloat
构造函数将其从 Double
转换:
let scaleAction = SKAction.scale(by: CGFloat(variable1 * variable3), duration: 1)
我在我的代码中收到了一个似乎相对常见的错误,但其他问题的解决方案示例似乎与我的情况不太相关。例如; (
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
。您可以努力确保 variable1
和 variable3
是 CGFloat
,或者您可以使用 CGFloat
构造函数将其从 Double
转换:
let scaleAction = SKAction.scale(by: CGFloat(variable1 * variable3), duration: 1)