Поєднання відповідей у перевантажений набір функцій (та використання "**" замість "^^", як використовують інші мови - для мене зрозуміліше):
// 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 (), також призведуть до помилок, і ці функції переносять помилку, тому тягар перевірки помилок все ще лежить на коді за допомогою функції живлення. KISS, ІМХО.
Використання нативної функції pow () дозволяє, наприклад, взяти квадратні корені (2 ** 0,5) або обернені (2 ** -3 = 1/8). Через можливість використовувати зворотні або дробові експоненти, я написав увесь свій код, щоб повернути типовий подвійний тип функції pow (), який повинен повернути найбільшу точність (якщо я правильно пам'ятаю документацію). Якщо потрібно, це може бути набрано на лінійку Int або Float або що завгодно, можливо, з втратою точності.
2 ** -3 = 0.125
2 ** 0.5 = 1.4142135623731
2 ** 3 = 8