当前位置:嗨网首页>书籍在线阅读

12-内联函数声明

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

11.3.2 内联函数声明

函数支持内联,需要在定义函数时使用inline关键字,内联函数的格式如下。

inline fun 函数名(参数){
   函数体
}

目前,内联函数主要应用于函数参数是Lambda表达式的代码中。代码如下。

inline fun process(language:(name:String)-> String):String{
    return language("Kotlin")
}

在Kotlin中,使用inline关键字标记的内联函数,既会影响函数本身,也会影响传参的Lambda表达式,这两者都会被内联到调用处。

如果在内联函数中有多个参数,则只需要部分参数内联Lambda表达式即可,可以使用noinline来标记不需要内联的参数。代码如下。

inline fun process(inlined: () -> Unit, noinline notInlined: () -> Unit){
    //…
}

内联Lambda表达式只能在内联函数中调用或者作为内联参数使用,可随意使用关键字noinline修饰的Lambda表达式。