Swift二进制运算符不能应用于“2”;“双”字;操作数
我收到的代码中似乎有一个比较常见的错误,但其他问题的解决方案示例似乎与我的情况不太相关。例如() 这就是所有相关的代码。不管出于什么原因,我收到一个错误,集中在最后一行的乘法星上,说“二进制运算符”*“不能应用于两个“双精度”操作数。为什么不能呢?有什么方法可以解决这个问题吗Swift二进制运算符不能应用于“2”;“双”字;操作数,swift,xcode,binary,skaction,operands,Swift,Xcode,Binary,Skaction,Operands,我收到的代码中似乎有一个比较常见的错误,但其他问题的解决方案示例似乎与我的情况不太相关。例如() 这就是所有相关的代码。不管出于什么原因,我收到一个错误,集中在最后一行的乘法星上,说“二进制运算符”*“不能应用于两个“双精度”操作数。为什么不能呢?有什么方法可以解决这个问题吗 提前感谢。错误消息有点误导。真正的问题是scale(by:duration:)使用CGFloat作为刻度: open class func scale(by scale: CGFloat, duration sec: Ti
提前感谢。错误消息有点误导。真正的问题是
scale(by:duration:)
使用CGFloat
作为刻度:
open class func scale(by scale: CGFloat, duration sec: TimeInterval) -> SKAction
因此,您需要传递一个CGFloat
。您可以确保variable1
和variable3
是CGFloat
s,也可以使用CGFloat
构造函数将其从Double
转换为:
let scaleAction = SKAction.scale(by: CGFloat(variable1 * variable3), duration: 1)
谢谢!这完全解决了问题。您链接的问题本质上是相同的。在这种情况下,函数采用了
Int
而不是CGFloat
,但解决方案是相同的,因为您需要确保二进制运算符操作的两个值与参数类型匹配,或者你需要转换它。哦,我明白了,从现在起我会记住的。再次感谢你。
let scaleAction = SKAction.scale(by: CGFloat(variable1 * variable3), duration: 1)