Kotlin inline 内联函数

Posted 安果移不动

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

以上是关于Kotlin inline 内联函数的主要内容,如果未能解决你的问题,请参考以下文章

一次性搞懂Kotlin的内联函数--inline,noinline和crossinline

内联函数

Kotlin:你必须要知道的 inline-noinline-crossinline

kotlin内联(inline)函数中参数默认值报VerifyError: Bad local variable type错误的解决办法

kotlin内联(inline)函数中参数默认值报VerifyError: Bad local variable type错误的解决办法

kotlin内联(inline)函数中参数默认值报VerifyError: Bad local variable type错误的解决办法