Шаг 36.
Основы Kotlin.
Функции. Пишем свои функции

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

    Теперь, когда мы организовали логику NyetHack в функции, можно приступать к реализации заклинания, порождающего бокал дурманящего напитка. В конце Game.kt объявите новую функцию с именем castFureball без параметров. Добавьте модификатор видимости private. castFireball не должна иметь возвращаемых значений, но должна выводить эффект от применения заклинания.

private fun castFireball() {
    println("A glass of Fireball springs into existence.")
}


Рис.1. Добавление функции castFireball (Game.kt)

    Теперь вызовите castFireball() из функции main().


Функция castFireball объявлена без параметров, поэтому не нужно передавать аргументы, чтобы ее вызвать, - просто оставьте скобки пустыми.
    .    .    .   .   .
    // Состояние игрока
    printPlayerStatus(auraColor, isBlessed, name, healthStatus)

    castFireball()
    .    .    .   .   .


Рис.2. Вызов функции castFireball (Game.kt)

   

    Запустите NyetHack и полюбуйтесь новым выводом:

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


Рис.3. Вывод результата

    Отлично! Похоже, что заклинание работает, как и задумывалось.

    Один бокал напитка - это хорошо, но игрок должен иметь возможность наколдовать больше одного бокала за раз.

    Обновите функцию castFireball, чтобы она принимала параметр Int с именем numFireballs. При вызове функции castFireball передайте ей аргумент 5. Наконец, отметьте количество бокалов в выходных данных.

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

    castFireball(5)
}

.   .   .   .   .

private fun castFireball(numFireballs: Int) {
    println("A glass of Fireball springs into existence.(x$numFireballs)")
}
Файл с проектом можно взять здесь.


Рис.4. Добавление параметра numFireballs (Game.kt)

    Снова запустите NyetHack. Вы увидите следующее сообщение:

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


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

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

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




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