Kotlin基础教程-内联函数

时间:2025-02-08 16:44:50

内联函数

定义

内联和正常函数的区别不在于定义函数的异同点。定义的时候只需要加一个标识,就可以让正常函数变为内联函数。实际两者的区别是在实际执行时的处理机制上。内联是耗用性能低,比正常函数少了压栈和出栈的操作,是一种以空间换时间的方式。当函数体少,以及被频繁调用的函数才适合被定义为内联函数

关键字:inline

inline fun lock<T>(lock: Lock,body: ()-> T): T {
    //...
}

noinline

该关键字定义非内联函数,为啥还要专门这样定义。这是为了给内联函数传递函数参数时,为了标识这个函数非内联而添加的。

inline fun foo(inlined: () -> Uint, @noinline notInlined: () -> Unit) {
    //...
}