На этом шаге мы рассмотрим задание таких типов.
В предыдущих шагах вы узнали о типах данных, таких как Int и String. Анонимные функции тоже имеют тип, называемый функциональным типом. Переменные этого типа могут содержать анонимные функции и передаваться по коду, как обычные переменные.
Добавьте в 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)
На следующем шаге мы рассмотрим неявный возврат.