Шаг 49.
Основы Kotlin.
Анонимные функции и функциональные типы. Неявный возврат

    На этом шаге мы рассмотрим механизм возврата значения из анонимной функции.

    Вы могли заметить, что ключевое слово return отсутствует в объявленной анонимной функции:

    val greetingFunction: () -> String = {
        val currentYear = 2021
        "Welcome to SimVillage, Mayor! (copyright $currentYear)"
    }

    Однако функциональный тип явно показывает, что функция должна вернуть строку, а компилятор при этом не имеет возражений. Как можно судить по выводу, строка действительно была возвращена - и это приветствие мэра. Но как это возможно, если отсутствует ключевое слово return?

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

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

    На следующем шаге мы рассмотрим функциональные аргументы.




Предыдущий шаг Содержание Следующий шаг