內聯函數:
在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)
}
需要注意的是,內聯類不能包含任何屬性或初始化邏輯,也不能擁有繼承關系或實現接口。內聯類只能包裝一個基本類型的變量。