Что такое noinline

«Что такое noinline» — вопрос из категории Kotlin, который задают на 32% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

noinline — это модификатор в Kotlin, который указывает компилятору не встраивать лямбда-выражение при компиляции.

Используется, когда:

  • Лямбда передаётся в другую функцию (например, асинхронный вызов).
  • Нужно сохранить ссылку на лямбду (например, для повторного использования).

Пример:

inline fun execute(action: () -> Unit, noinline log: () -> Unit) {  
    log()  // Не будет встроена  
    action()  
}  

Без noinline компилятор выдаст ошибку, если попытаться передать log в другую не-inline функцию.