使用这种风格的函数会产生性能问题吗?:
*fun sqrt(x: Float) = Math.sqrt(x.toDouble()).toFloat()*
*fun cos(angle: Float) = Math.cos(angle.toDouble()).toFloat()*
*fun sin(angle: Float) = Math.sin(angle.toDouble()).toFloat()*
与 Floats 一起使用:
*sqrt(45.0f)*
*cos(1.58f)*
*sin(0.28f)*
而不是更冗长:
*Math.sqrt(45.0f.toDouble()).toFloat()*
*Math.cos(1.58f.toDouble()).toFloat()*
*Math.sin(0.28f.toDouble()).toFloat()*
提前问候和感谢
最佳答案
使用包装器应该没有性能问题。
由于调用这些函数(它们是静态调度的,就像任何实用方法一样),性能可能会略有下降。
如果您在热 代码中使用包装器,那么您可以内联它们:
inline fun sqrt(x: Float) = Math.sqrt(x.toDouble()).toFloat()
对于内联函数,字节码与 Java 生成的字节码没有什么不同。
关于java - float 数学类的替代品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35861968/