Solución:
No hay un operador, pero puede usar la función pow de esta manera:
return pow(num, power)
Si lo desea, también puede hacer que un operador llame a la función pow de esta manera:
infix operator ** { associativity left precedence 170 }
func ** (num: Double, power: Double) -> Double{
return pow(num, power)
}
2.0**2.0 //4.0
Si aumenta 2 a algo de potencia, puede usar el operador de desplazamiento a la izquierda bit a bit:
let x = 2 << 0 // 2
let y = 2 << 1 // 4
let z = 2 << 7 // 256
Observe que el valor de ‘potencia’ es 1 menos de lo que podría pensar.
Tenga en cuenta que esto es más rápido que pow(2.0, 8.0)
y le permite evitar tener que usar dobles.
Para cualquiera que busque una versión Swift 3 del **
operador infijo:
precedencegroup ExponentiationPrecedence {
associativity: right
higherThan: MultiplicationPrecedence
}
infix operator ** : ExponentiationPrecedence
func ** (_ base: Double, _ exp: Double) -> Double {
return pow(base, exp)
}
func ** (_ base: Float, _ exp: Float) -> Float {
return pow(base, exp)
}
2.0 ** 3.0 ** 2.0 // 512
(2.0 ** 3.0) ** 2.0 // 64
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)