如何使Swift中的取幂运算符**
与其他编程语言中的指数运算符相同。
问题Exponentiation operator in Swift有以下答案,其票数最高,
infix operator ** { associativity left precedence 170 }
func ** (num: Double, power: Double) -> Double{
return pow(num, power)
}
然而,y = -x**2
,
(-x)**2 = 4.0
(Swift)-(x**2) = -4.0
(预期!)答案 0 :(得分:1)
我相信你的问题是:
Swift中的一元运算符总是优先于二元运算符。
以下是来源:https://medium.com/swift-programming/facets-of-swift-part-5-custom-operators-1080bc78ccc
因此,表达式始终评估为(-x)**2
而不是-(x**2)
,因为-
是一元运算符,**
是二元运算符。