Ответ
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 осознанно, только когда это действительно даёт преимущества в производительности.