Шаг 34.
Основы Kotlin.
Функции. Вызов функции

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

    IntelliJ не только сгенерировала функцию formatHealthStatus, но и добавила строку кода в место, откуда выделена функция:

fun main() {
    val name = "Madrigal"
    var healthPoints = 89
    val isBlessed = true
    val isImmortal = false

    // Аура
    if (isBlessed && healthPoints > 50 || isImmortal) {
        println("GREEN")
    } else {
        println("NONE")
    }

    val healthStatus = formatHealthStatus(healthPoints, isBlessed)
    .    .    .    .


Рис.1. Строка с вызовом функции

    Эта строка вызова функции, которая активирует функцию для выполнения действий, заданных в ее теле. Для вызова функции нужно указать ее имя и данные, соответствующие параметрам, как определено в заголовке.

    Сравните заголовок функции formatHealthStatus с ее вызовом:

formatHealthStatus(healthPoints: Int, isBlessed: Boolean): String // Заголовок 
formatHealthStatus(healthPoints, isBlessed) // Вызов

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


Терминологическая справка: параметр - это то, что требуется функции, а аргумент - это то, что передается при вызове функции, чтобы выполнить это требование. Вы увидите, что эти термины применяют как взаимозаменяемые.

    Здесь, как указано в объявлении функции, вы передаете значение healthPoints (которое должно быть значением типа Int) и булево значение isBlessed.

    Запустите NyetHack, и вы увидите такой же вывод, как и раньше:

  (Aura: GREEN) (Blessed: YES)
  Madrigal has some minor wounds, but is healing quite quickly!


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

    Хотя вывод не поменялся, код NyetHack стал более организованным и легким в сопровождении.

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




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