Swift中的指数运算符

在Swift语言参考中,我没有看到在基本算术运算符中定义的指数运算符。

语言中是否真的没有预定义的整数或浮点乘幂运算符?

没有一个操作符,但你可以像这样使用pow函数:

return pow(num, power) 

如果你愿意,你也可以让操作员调用这个pow函数:

 infix operator ** { associativity left precedence 170 } func ** (num: Double, power: Double) -> Double{ return pow(num, power) } 2.0**2.0 //4.0 

如果你碰巧正在提高2的权力,你可以使用按位左移运算符:

 let x = 2 << 0 // 2 let y = 2 << 1 // 4 let z = 2 << 7 // 256 

请注意,“功率”值比您想象的要小1。

请注意,这比pow(2.0, 8.0)更快pow(2.0, 8.0)并且可以避免使用双打。

对于任何寻找**缀运算符的Swift 3版本的人:

 precedencegroup ExponentiationPrecedence { associativity: right higherThan: MultiplicationPrecedence } infix operator ** : ExponentiationPrecedence func ** (_ base: Double, _ exp: Double) -> Double { return pow(base, exp) } func ** (_ base: Float, _ exp: Float) -> Float { return pow(base, exp) } 2.0 ** 3.0 ** 2.0 // 512 (2.0 ** 3.0) ** 2.0 // 64 

我这样做了:

 operator infix ** { associativity left precedence 200 } func ** (base: Double, power: Double) -> Double { return exp(log(base) * power) } 

没有一个,但你有powfunction。

像大多数的C语言家族一样,没有一个。