การรวมคำตอบเป็นชุดฟังก์ชันที่มีมากเกินไป (และใช้ "**" แทน "^^" ตามที่ภาษาอื่นใช้ - ชัดเจนกว่าสำหรับฉัน):
// 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 () แสดงข้อผิดพลาดก็จะทำให้ฟังก์ชันเหล่านี้แสดงข้อผิดพลาดได้เช่นกันดังนั้นภาระในการตรวจสอบข้อผิดพลาดจึงยังคงอยู่กับโค้ดที่ใช้ฟังก์ชันพาวเวอร์อยู่ดี จูบ IMHO
การใช้ฟังก์ชัน native pow () ช่วยให้สามารถใช้รากที่สอง (2 ** 0.5) หรือผกผัน (2 ** -3 = 1/8) เนื่องจากความเป็นไปได้ที่จะใช้เลขชี้กำลังผกผันหรือเศษส่วนฉันจึงเขียนโค้ดทั้งหมดของฉันเพื่อส่งคืนค่าเริ่มต้นประเภท Double ของฟังก์ชัน pow () ซึ่งควรให้ความแม่นยำสูงสุด (ถ้าฉันจำเอกสารประกอบได้อย่างถูกต้อง) หากจำเป็นก็สามารถพิมพ์ลงไปที่ Int หรือ Float หรืออะไรก็ได้ซึ่งอาจสูญเสียความแม่นยำ
2 ** -3 = 0.125
2 ** 0.5 = 1.4142135623731
2 ** 3 = 8