Ответ
noinline — это модификатор в Kotlin, который указывает компилятору не встраивать лямбда-выражение, переданное в функцию с модификатором inline.
Когда использовать:
- Если лямбда передается в другую функцию (не inline).
- Если нужно сохранить ссылку на лямбду (например, для отложенного выполнения).
Пример:
inline fun executeTask(noinline task: () -> Unit) {
// task нельзя встроить, так как он передается дальше
runLater(task)
}
fun runLater(action: () -> Unit) {
// выполнение action
}
Без noinline компилятор выдаст ошибку, так как inline-функция пытается передать лямбду в не-inline контекст.