Шаг 37.
Основы Kotlin.
Функции. Аргументы по умолчанию

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

    Иногда аргумент функции может иметь "частое" значение. Например, для функции castFireball пять заклинаний подряд - это как-то слишком. Обычно достаточно двух. Чтобы упростить вызов castFireball, добавьте аргумент по умолчанию.

    Ранее мы говорили, что переменной var можно присвоить начальное значение и потом изменить. Аналогично можно присвоить значение по умолчанию параметру, оно будет использовано в отсутствие конкретного аргумента. Обновите функцию castFireball, добавив значение по умолчанию для numFireballs.

.   .   .   .   .
private fun castFireball(numFireballs: Int = 2) {
    println("A glass of Fireball springs into existence.(x$numFireballs)")
}

    Теперь по умолчанию numFireballs будет получать значение 2, если вызвать castFireball() без аргумента. Обновите функцию main(), убрав аргумент из вызова castFireball().

    .    .    .   .   .
    // Состояние игрока
    printPlayerStatus(auraColor, isBlessed, name, healthStatus)

    castFireball()
    .    .    .   .   .
Файл с проектом можно взять здесь.


Рис.1. Значение по умолчанию для параметра numFireballs и вызов castFireball() с аргументом по умолчанию (Game.kt)

    Запустите NyetHack снова. С вызовом castFireball() без аргумента вы увидите следующее сообщение:

  (Aura: GREEN) (Blessed: YES)
  Madrigal has some minor wounds, but is healing quite quickly!
  A glass of Fireball springs into existence. (x2)


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

    Так как вы не передали аргумент для параметра numFireballs, он получит значение по умолчанию 2.

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




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