> Можно ли пометить лямбду как inline в Kotlin (Kotlin, Android)
Уровень: middle · Роль: mobile · Категория: Технические вопросы
Компании: TrendTech
Стек: Kotlin, Android
> Пример ответа
Да, в Kotlin можно пометить лямбду как inline, но не напрямую. Ключевое слово inline применяется к функциям, а не к самим лямбда-выражениям. Однако, если вы объявляете функцию высшего порядка (принимающую лямбду в качестве параметра) с модификатором inline, то переданная лямбда также будет встроена (inlined) в место вызова.
Пример:
inline fun performAction(action: () -> Unit) { println("Before") action() println("After") } fun main() { performAction { println("Action") } }
Здесь лямбда { println("Action") } будет встроена в тело функции performAction на этапе компиляции, что позволяет избежать накладных расходов на создание анонимного объекта и вызов. Это особенно полезно в Android-разработке для оптимизации производительности, например, при работе с коллекциями или корутинами.
Если же вы хотите запретить встраивание конкретной лямбды внутри inline-функции, используйте модификатор noinline:
inline fun process(block: () -> Unit, noinline other: () -> Unit) { block() // будет встроена other() // не будет встроена }
> Похожие задачи по mobile
Что такое тип Nothing в Kotlin и чем он отличается от Unit
Что такое companion objects в Kotlin
В чем разница горячих и холодных потоков в Kotlin Flow
Почему в Kotlin нет ключевого слова synchronized как в Java?
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью