swift - 如何使用 ** 用于指数使用 @infix func **( )?

标签 swift operators infix-operator

我想使用 ** 重载指数函数。如果我使用类似“^”的东西,我会工作,但 python 的做法是 ** 我想将它与 Swift 一起使用。有什么办法吗?

error: Operator implementation without matching operator declaration

@infix func ** (num: Double, power: Double) -> Double{
    return pow(num, power)
}

println(8.0**3.0) // Does not work

最佳答案

在定义函数之前需要先声明运算符,如下:

在 Swift 2 中:

import Darwin

infix operator ** {}

func ** (num: Double, power: Double) -> Double {
    return pow(num, power)
}

println(8.0 ** 3.0) // works

在 Swift 3 中:

import Darwin

infix operator **

func ** (num: Double, power: Double) -> Double {
    return pow(num, power)
}

print(8.0 ** 3.0) // works

关于swift - 如何使用 ** 用于指数使用 @infix func **( )?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24084801/

相关文章:

c++ - 运算符(operator)内部运算符(operator)不工作

c++ - C/C++ 中的“!<number>”是什么意思

haskell - 如何检查 Haskell 中缀运算符优先级

infix-notation - 负数后缀的中缀

Haskell:为什么不允许中缀类型构造函数?

iphone - 如何从 Storyboard 或快速在导航 View Controller 中添加默认后退按钮?

iOS swift RemoteControlReceivedWithEvent

swift - 调整容器 View 的高度以匹配 subview 的高度

swift - 无法将类型 'IndexPath' 的值分配给类型 'Int'

C++ asterisk 星号运算符