什么时候用到内联
在方法参数中包含有 lambda的时候
内联的作用是什么
提高性能 我们废话不多说直接上代码
不加内联
import java.util.*
fun main() {
inlineTest() { result, code ->
println("resout:$result code:$code")
}
}
fun inlineTest(res: (String, Int) -> Unit) {
res("错了错了", 404)
}
查看字节码
查看编译出来的字节码 我们可以知道他被包装成了
Function2 对象 然后又进行的一系列运算。过程更加复杂了
加上内联
重新用上述方式查看字节码
神奇的事情发生了。代码更加的简洁。效率也随之提升了。
PS:加不加效果都一样输出
resout:错了错了 code:404
参考:
Kotlin的inline内联函数_LeoHoFly的博客-CSDN博客_kotlin内联外联函数
【2021最新版Kotlin教程】Android Kotlin从入门到进阶全套教程(全网最完善kotlin教程)_哔哩哔哩_bilibili