12

**指数関数をオーバーロードするために使用したい。「^」のようなものを使用すると機能しますが、Pythonの方法は**Swiftで使用したいと考えています。それを行う方法はありますか?

エラー: 一致する演算子宣言のない演算子の実装

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

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

2 に答える 2

4

** が隣接する * または / の前に実行されるようにするには、優先順位を設定する必要があります。

infix operator ** { associativity left precedence 160 }

http://nshipster.com/swift-operators/が示すように、指数演算子の優先順位は << および >> ビットごとのシフト演算子と同様に 160 です。

于 2015-01-28T22:45:15.093 に答える