Что такое inline-функции

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

Ответ

Inline-функции в Kotlin — это функции, помеченные ключевым словом inline, которые компилятор подставляет прямо в место вызова, избегая накладных расходов на вызов функции. Особенно полезны для лямбда-параметров, так как исключают создание анонимных классов.

inline fun measureTime(block: () -> Unit) {
    val start = System.currentTimeMillis()
    block()
    println("Time: ${System.currentTimeMillis() - start}ms")
}

// Вызов
measureTime { 
    // какой-то код 
}

Нюансы:

  • Увеличивают размер билда (код дублируется)
  • Нельзя использовать в рекурсивных функциях
  • noinline — если нужно исключить inline для конкретного лямбда-параметра