Шаг 52.
Основы Kotlin.
Анонимные функции и функциональные типы. Получение нескольких аргументов

    На этом шаге мы рассмотрим механизм передачи в анонимную функцию нескольких параметров.

    Ключевое слово it можно использовать в анонимной функции, принимающей один аргумент, но нельзя, если число аргументов больше одного. Однако анонимные функции могут принимать несколько именованных аргументов.

    Настало время изменить программу SimVillage, чтобы она выводила что-то еще, кроме приветствия. Мэру нужно знать, растет его деревня или нет. Измените анонимную функцию так, чтобы она принимала аргумент numBuildings с количеством построенных домов, а не только имя игрока.

fun main() {
    val greetingFunction: (String, Int) -> String = { playerName, numBuildings ->
        val currentYear = 2021
        println("Adding $numBuildings houses")
        "Welcome to SimVillage, $playerName! (copyright $currentYear)"
    }
   println(greetingFunction("Guyal", 2))
}
Файл с проектом можно взять здесь.


Рис.1. Получение второго аргумента (SimVillage.kt)

    Выражение теперь объявляет два параметра, playerName и numBuildings, и принимает два аргумента. Так как теперь у нас больше одного параметра в выражении, ключевое слово it более недоступно.

    Запустите SimVillage снова. В этот раз вы увидите не только приветствие, но и количество построенных зданий:

  Adding 2 houses
  Welcome to SimVillage, Guyal! (copyright 2021)


Рис.2. Результат выполнения приложения

    На следующем шаге мы рассмотрим поддержку автоматического определения типов.




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