swiftで累乗の計算をする
pow をつかう。
ex)
pow(2.0, 2.0) // => 4.0
おまけ. 演算子を追加する。
precedencegroup ExponentiationPrecedence {
associativity: right
higherThan: MultiplicationPrecedence
}
infix operator ** : ExponentiationPrecedence
func ** (_ base: Double, _ exp: Double) -> Double {
return pow(base, exp)
}
以下のようにつかう
2.0 ** 2.0 // => 4.0
おまけ 演算子の作成
1.ベースの作成
結合(右から計算するか、左から計算するか)
優先順位(掛け算が先か、足し算が先か)
をpreferencegroupで指定して、演算子のベースを決める。
2.演算子の記号の作成
今回だと infix(変数と変数の間におく)で ** という記号を作成。
3. 実行する計算の作成
今回だと func ** の部分で実際の計算を作成してできる。
optionalの足し算・引き算とか定義しておくと便利な時があったりなかったりする。
参考