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

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

    Как и именованные функции, анонимная функция может принимать любое количество аргументов любого типа. Параметры анонимной функции объявляются перечислением типов в определении типа функции и получают имена в определении самой анонимной функции.

    Измените объявление переменной greetingFunction, чтобы она принимала аргумент с именем игрока.

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

   println(greetingFunction("Guyal"))
}
Файл с проектом можно взять здесь.


Рис.1. Добавление параметра playerName в анонимную функцию (SimVillage.kt)

    Здесь мы указали, что анонимная функция принимает строку. Имя строкового параметра определяется внутри функции, сразу после открывающей фигурной скобки, и за ним следует стрелка:

    val greetingFunction: (String) -> String = {playerName ->

    Запустите SimVillage.kt снова. Вы увидите, что аргумент, переданный анонимной функции, был добавлен в строку:

  Welcome to SimVillage, Guyal! (copyright 2021)

    Помните функцию count (смотри 47 шаг)? Она принимает анонимную функцию в аргументе типа (Char) -> Boolean с именем predicate. Функция predicate() принимает аргумент Char и возвращает булево значение. Вы увидите, что анонимные функции используются для реализации многих возможностей в стандартной библиотеке Kotlin, поэтому постарайтесь привыкнуть к их синтаксису.

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




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