. Android Studio ^ . , v (^ ). ? , , Thons pow .
inline infix fun Double.v(exponent: Int): Double = this.pow(exponent)
inline infix fun Double.v(exponent: Long): Double = this.pow(exponent.toDouble())
inline infix fun Double.v(exponent: Double): Double = this.pow(exponent)
inline infix fun Int.v(exponent: Int): Double = this.toDouble().pow(exponent)
inline infix fun Int.v(exponent: Long):
Double = this.toDouble().pow(exponent.toDouble())
inline infix fun Int.v(exponent: Double): Double = this.toDouble().pow(exponent)
inline infix fun Long.v(exponent: Int): Double = this.toDouble().pow(exponent)
inline infix fun Long.v(exponent: Long):
Double = this.toDouble().pow(exponent.toDouble())
inline infix fun Long.v(exponent: Double):
Double = this.toDouble().pow(exponent)
inline use does not create additional load at runtime, even inside heavier loops.
Unfortunately, a damaged operator priority forces you to bracket the power-on operation. And the compiler makes you flank spaces.
In the end, what gives a better look?
It?
var k=2
...
println((k v 5)+3)
Or that?
var k=2
...
println(k.toDouble().pow(5) + 3)
I vote for the first option!
source
share