Back to questions
Дзен
Junior — Middle
71
Какое отличие между передачей переменной типа int и передачи функции через lambda в объявленной inline функции?
Companies where asked
Answer from AI
sobes.tech AI
В Kotlin при объявлении inline функции передача переменной типа int и передача функции через lambda имеют разные механизмы:
- Передача int — это передача значения по значению (копирование), что быстро и просто.
- Передача lambda — обычно создает объект функции и замыкание, что может влиять на производительность.
Однако, если функция объявлена как inline, компилятор вставляет тело lambda прямо в место вызова, что устраняет накладные расходы на создание объекта и вызов функции. Это улучшает производительность при использовании лямбд.
Пример:
inline fun doSomething(x: Int, action: () -> Unit) {
println("Value: $x")
action() // lambda будет встроена сюда
}
fun main() {
doSomething(5) {
println("Action executed")
}
}
Здесь lambda не создает дополнительного объекта благодаря inline, а int передается как обычный параметр.