为什么swift中的中缀运算符不起作用?
我的电源中缀操作符不工作。它加或减为什么swift中的中缀运算符不起作用?,swift,Swift,我的电源中缀操作符不工作。它加或减 precedencegroup SquareSumOperatorPrecedence { lowerThan: MultiplicationPrecedence higherThan: AdditionPrecedence associativity: left assignment: false } infix operator ^: SquareSumOperatorPrecedence func ^(lhs: Dou
precedencegroup SquareSumOperatorPrecedence {
lowerThan: MultiplicationPrecedence
higherThan: AdditionPrecedence
associativity: left
assignment: false
}
infix operator ^: SquareSumOperatorPrecedence
func ^(lhs: Double, rhs: Double) -> Double {
return pow(lhs, rhs)
}
9 ^ 2// equals 81
// It gives me 11
我以为9^2会给我81,但它给了我11
^
已经被定义为整数操作数的“按位异或”运算符,这就是9^2
计算的:
9 ^ 2 = 0b1001 ^ 0b0010 = 0b1011 = 11
(有关按位运算符的详细信息,请参见。)
您为双操作数定义了一个运算符,如果实际使用double
值调用该运算符,则该运算符将按预期工作:
print(9.0 ^ 2.0) // 81