Ответ
В Kotlin inline функции позволяют избежать накладных расходов на вызов функций, особенно при передаче лямбд.
Передача Int:
Примитивные типы (Int, Boolean и т.д.) передаются по значению. В inline функции компилятор просто подставляет значение напрямую, без создания объекта.
Передача лямбды:
Лямбды обычно создают анонимные классы (Function объекты), что может влиять на производительность. Но если лямбда передается в inline функцию, компилятор встраивает её тело прямо в место вызова, избегая создания объекта.
Пример:
inline fun process(value: Int, action: (Int) -> Unit) {
action(value)
}
fun main() {
process(5) { println(it) } // Лямбда встраивается, объект не создаётся
}
Итог:
Int передаётся по значению, а лямбда в inline функции оптимизируется – её код встраивается, избегая накладных расходов.