Back to questions
Совкомбанк
Junior — Middle
70
Что означает модификатор noinline для функций в Kotlin и в чем его использование?
Companies where asked
Viasat tech
Answer from AI
sobes.tech AI
В Kotlin модификатор noinline используется в контексте inline-функций, которые принимают лямбда-выражения в качестве параметров. По умолчанию все лямбды в inline-функциях тоже инлайнится (встраиваются в код вызывающей функции), что улучшает производительность.
Однако иногда нужно запретить инлайнинг конкретной лямбды, например, если лямбда передается дальше или используется как объект. Для этого параметру лямбды ставят модификатор noinline.
Пример:
inline fun doSomething(inlineLambda: () -> Unit, noinline noInlineLambda: () -> Unit) {
inlineLambda() // будет встроена
noInlineLambda() // не будет встроена
}
Использование noinline позволяет контролировать, какие лямбды инлайнить, а какие — нет, что важно для корректности и оптимизации кода.