什么是内联函数
在 Kotlin 中通过 inline-functions (内联函数) 实现函数内联。
内联的作用:提升运行效率,调用被 inline 修饰符的函数,会把方法体内的代码放到调用的地方,其主要目的提高性能,减少对象的创建。
inline 修饰的函数适用于以下情况
inline修饰符适用于把函数作为另一个函数的参数,例如高阶函数filter、map、joinToString或者一些独立的函数repeatinline操作符适合和reified操作符结合在一起使用- 如果函数体很短,使用
inline操作符提高效率
字节码
- 内联函数字节码
//Inline Function
inline fun inlinePrintByteCode() {
println("printByteCode")
}
fun testInline() {
inlinePrintByteCode()
}

- 非函数内联字节码
fun printByteCode() {
println("printByteCode")
}
fun testNoInline() {
printByteCode()
}

禁用内联
- 如果希望只内联一部分传给内联函数的 lambda 表达式参数,那么可以用
noinline修饰符标记不希望内联的函数参数
inline fun inlineF(inlined: () -> Unit, noinline notInlined: () -> Unit) {
inlined()
notInlined()
}
fun main() {
inlineF({println("Hello")}, {println("World")})
}
