为什么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