Ответ
inline, noinline, crossinline — ключевые слова для работы с inline-функциями в Kotlin.
inline— указывает компилятору подставить тело функции вместо вызова, уменьшая накладные расходы.
inline fun execute(action: () -> Unit) {
action()
}
noinline— запрещает встраивание конкретного лямбда-параметра (например, если он передаётся дальше).
inline fun execute(noinline action: () -> Unit) {
otherFunction(action) // action не будет встроен
}
crossinline— гарантирует, что лямбда не содержитreturn(полезно для колбэков в асинхронном коде).
inline fun runAsync(crossinline callback: () -> Unit) {
thread { callback() } // return здесь запрещён
}