内联函数:
在Kotlin中,内联函数可以使用inline
关键字定义。内联函数会在调用的地方直接展开,减少了函数调用的开销,提高了性能。内联函数通常用于高阶函数或者函数类型的参数。
inline fun inlineFunction(block: () -> Unit) {
block()
}
fun main() {
inlineFunction {
println("This is an inline function")
}
}
内联类:
在Kotlin 1.3版本后引入了内联类,可以通过inline
关键字来定义内联类。内联类在运行时会被替换为包装的基本类型,可以减少内存消耗和提高性能。
inline class InlineClass(val value: Int)
fun main() {
val inlineValue = InlineClass(10)
println(inlineValue.value)
}
需要注意的是,内联类不能包含任何属性或初始化逻辑,也不能拥有继承关系或实现接口。内联类只能包装一个基本类型的变量。