Kotlin inline 内联函数

什么时候用到内联

在方法参数中包含有 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

猜你喜欢

转载自blog.csdn.net/mp624183768/article/details/123606958