Function Kotlin函数内联的好用例是什么?
我最近学习了Kotlin内联函数。我认为下面的函数twipsToPixels似乎是一个很好的用例,但是IntelliJ给了我一个警告,说这会对性能产生预期的影响。我本以为这里的情况正好相反?这让我觉得我错过了更深层次的东西。有人有什么想法吗Function Kotlin函数内联的好用例是什么?,function,kotlin,inline,inlining,Function,Kotlin,Inline,Inlining,我最近学习了Kotlin内联函数。我认为下面的函数twipsToPixels似乎是一个很好的用例,但是IntelliJ给了我一个警告,说这会对性能产生预期的影响。我本以为这里的情况正好相反?这让我觉得我错过了更深层次的东西。有人有什么想法吗 private inline fun twipsToPixels(value: Int) = (value * SCREEN_RESOLUTION / TWIPS_CONVERSION).roundToInt() private fun screenBox
private inline fun twipsToPixels(value: Int) = (value * SCREEN_RESOLUTION / TWIPS_CONVERSION).roundToInt()
private fun screenBoxInPixels(screenBox: ScreenBox): ScreenBox {
val left = twipsToPixels(screenBox.position.left)
val top = twipsToPixels(screenBox.position.top)
val width = twipsToPixels(screenBox.size.width)
val height = twipsToPixels(screenBox.size.height)
return ScreenBox(Position(left, top), Size(width, height))
}
但是IntelliJ给了我一个警告,说这会对性能产生预期的影响
你误读了它;它说这种影响是微不足道的,也就是说,可能太小而无足轻重。信息的第二部分是
内联最适用于具有函数类型参数的函数
主要是因为它允许避免首先为这些参数创建函数对象。主要是具体化的参数是内联的原因。一个好的JVM无论如何都会内联方法,如果这是有效的。这是否回答了你的问题?