Можно ли сэкономить время при использовании inline функции

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

Ответ

Да, inline-функции могут сэкономить время выполнения, т.к. компилятор заменяет вызов функции её телом, избегая накладных расходов на вызов. Особенно полезно для небольших функций, часто вызываемых в циклах или критичных к производительности участках.

Пример:

inline fun calculateSum(a: Int, b: Int): Int = a + b

При компиляции вызов calculateSum(2, 3) заменится на 2 + 3, экономя стековый вызов.

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

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

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