Использовал ли inline функцию

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

Ответ

Inline-функции в Kotlin используются для оптимизации производительности, заменяя вызов функции на её тело во время компиляции. Это полезно для высоконагруженных участков кода или лямбда-выражений, передаваемых в функции высшего порядка (например, filter, map).

Пример:

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

Плюсы:

  • Уменьшает накладные расходы на вызов функции (особенно с лямбдами).
  • Позволяет использовать return из внешней функции внутри лямбды (non-local returns).

Ограничения:

  • Увеличивает размер билда (тело функции вставляется в каждое место вызова).
  • Нельзя использовать для рекурсивных функций или сложных функций с большим телом.

Используйте inline осознанно, только когда это действительно даёт преимущества в производительности.