【发布时间】:2014-06-06 14:53:00
【问题描述】:
我想使用** 来重载指数函数。如果我使用“^”之类的东西,我会工作,但 python 的做法是**,我想在 Swift 中使用它。有什么办法吗?
错误:没有匹配运算符声明的运算符实现
@infix func ** (num: Double, power: Double) -> Double{
return pow(num, power)
}
println(8.0**3.0) // Does not work
【问题讨论】:
-
您确定
^可以按预期工作吗?我只是把它作为一个补充:println(1^2) == 3 -
@vol7ron
^是按位异或运算符。1^2恰好等于1+2。请参阅The Swift Programming Language,语言指南 -> 高级运算符 -> 位异或运算符。 -
@Lensflare:我说的是 Python,其中
^不充当指数。我认为我错了并且误读了这个问题,这表明他可以在 Swift 中重载^以充当插入符号,但他想使用**,在尝试重载时它不起作用。 -
你需要使用 Jamie 的回答告诉编译器你想使用什么函数名。
标签: swift operators infix-operator