Cevapları aşırı yüklenmiş bir işlevler kümesinde birleştirmek (ve diğer bazı dillerin kullandığı gibi "^^" yerine "**" kullanmak - benim için daha anlaşılır):
// 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 kullanırken hassasiyeti kaybedebilirsiniz. Sayısal değişmez değerler ve tamsayılar ile tamsayı olmayanların bir karışımını kullanıyorsanız, varsayılan olarak Double ile sonuçlanırsınız. Kişisel olarak, üslup / okunabilirlik nedenleriyle pow (a, b) gibi bir işlev yerine matematiksel bir ifade kullanma becerisini seviyorum, ama bu sadece benim.
Pow () 'nun bir hata atmasına neden olacak herhangi bir işleç de bu işlevlerin bir hata atmasına neden olacaktır, bu nedenle hata kontrolünün yükü yine de güç işlevini kullanan kodda yatar. ÖPÜCÜK, IMHO.
Doğal pow () işlevinin kullanılması, örneğin karekök (2 ** 0.5) veya ters (2 ** -3 = 1/8) almaya izin verir. Ters veya kesirli üsler kullanma olasılığından dolayı, tüm kodumu pow () işlevinin varsayılan Double türünü döndürmek için yazdım, bu en kesinliği döndürmelidir (dokümantasyonu doğru hatırlıyorsam). Gerekirse, bu, muhtemelen hassasiyet kaybıyla, Int veya Float'a veya her neyse, tipe dönüştürülebilir.
2 ** -3 = 0.125
2 ** 0.5 = 1.4142135623731
2 ** 3 = 8