Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Kotlin: функции

Как работает return в лямбде внутри inline-функции?

Этот вопрос проверяет понимание поведения return в лямбдах внутри inline-функций и различий между локальным и нелокальным возвратом.

Короткий ответ

В Kotlin return в лямбде по умолчанию завершает внешнюю функцию (нелокальный возврат). Но если лямбда передана в inline-функцию, return работает так же, как если бы код был вставлен напрямую. Чтобы вернуться только из лямбды (локальный возврат), используйте return@label.

Длинный ответ

Обычно в Kotlin return внутри лямбды приводит к ошибке, потому что лямбда не знает, из какой функции нужно выйти. Но если функция объявлена как inline, компилятор вставляет её код напрямую, и return работает так же, как в обычном коде.

Пример:

inline fun runInline(block: () -> Unit) {
    	block()
}

fun main() {
    	runInline {
        	println("Before return")
        	return  // Завершает main(), потому что runInline встроена
    	}
    	println("This won't print")
}

Если нужно вернуться только из лямбды (а не из внешней функции), используйте локальный возврат с меткой:

fun main() {
    	listOf(1, 2, 3).forEach {
       		if (it == 2) return@forEach  // Выходит только из лямбды forEach
        	println(it)
    	}
    	println("This will print")
}

Вывод:

1
3
This will print

Таким образом, inline-функции меняют поведение return, позволяя ему выходить из внешнего контекста, если не указана метка.

  • Аватар

    Android Guru

    Anton Gulyaev

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    4

  • Сложность:

    5

Навыки

  • Kotlin

    Kotlin

Ключевые слова

#функции

Подпишись на Android Developer в телеграм

  • Аватар

    Android Guru

    Anton Gulyaev

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.