回答を多重定義された関数のセットに結合します(他の言語が使用する「^^」の代わりに「**」を使用します-私にはより明確です):
// http://stackoverflow.com/questions/24196689/how-to-get-the-power-of-some-integer-in-swift-language
// Put this at file level anywhere in your project
infix operator ** { associativity left precedence 160 }
func ** (radix: Double, power: Double) -> Double { return pow(radix, power) }
func ** (radix: Int, power: Int ) -> Double { return pow(Double(radix), Double(power)) }
func ** (radix: Float, power: Float ) -> Double { return pow(Double(radix), Double(power)) }
Floatを使用すると、精度が失われる場合があります。数値リテラルと、整数と非整数の混合を使用する場合、デフォルトではDoubleになります。私は個人的に、スタイル/読みやすさの理由から、pow(a、b)のような関数の代わりに数式を使用する機能が好きですが、それは私だけです。
pow()にエラーをスローさせるすべての演算子は、これらの関数にもエラーをスローさせるため、エラーチェックの負担は、とにかくpower関数を使用するコードにあります。キス、私見。
ネイティブのpow()関数を使用すると、たとえば平方根(2 ** 0.5)または逆数(2 ** -3 = 1/8)を取ることができます。逆指数または分数指数を使用する可能性があるため、すべてのコードを記述して、pow()関数のデフォルトのDouble型を返します。必要に応じて、これはIntやFloatなどの型キャストにキャストできますが、精度が失われる可能性があります。
2 ** -3 = 0.125
2 ** 0.5 = 1.4142135623731
2 ** 3 = 8