На этом шаге мы рассмотрим задание таких типов.
В предыдущих шагах вы узнали о типах данных, таких как Int и String. Анонимные функции тоже имеют тип, называемый функциональным типом. Переменные этого типа могут содержать анонимные функции и передаваться по коду, как обычные переменные.
Не путайте функциональные типы с типом Function. Функциональный тип определяет специфические особенности функции, такие как количество и типы входных параметров, а
также тип возвращаемого значения. Скоро вы сможете в этом убедиться.
Добавьте в SimVillage.kt объявление переменной, содержащей функцию, и присвойте ей анонимную функцию, возвращающую текст приветствия. Синтаксис выглядит незнакомым, но мы объясним его после того, как вы добавите код.
fun main() { val greetingFunction: () -> String = { val currentYear = 2021 "Welcome to SimVillage, Mayor! (copyright $currentYear)" } println(greetingFunction()) }

Рис.1. Присваивание переменной анонимной функции (SimVillage.kt)
Вы объявили переменную, за именем которой следует двоеточие и тип. Объявление
greetingFunction: () -> String ,
Объявление функционального типа состоит из двух частей (рисунок 2): параметров функции в скобках и возвращаемого типа, следующего за стрелкой (->).

Рис.2. Синтаксис функционального типа
Объявление типа переменной
greetingFunction: () -> String
Запустите main(). Вывод не должен измениться.
Welcome to SimVillage, Mayor! (copyright 2021)

Рис.3. Результат выполнения измененной функции приветствия (SimVillage.kt)
На следующем шаге мы рассмотрим неявный возврат.