На этом шаге мы рассмотрим особенности задания и использования таких аргументов.
Давайте посмотрим, как будет выглядеть вызов функции printPlayerStatus() с передачей аргументов:
// Состояние игрока printPlayerStatus("NONE", true, "Madrigal", "has a few scratches.")
Другой способ вызвать эту же функцию:
// Состояние игрока printPlayerStatus(auraColor = "NONE", isBlessed = true, name = "Madrigal", healthStatus = "has a few scratches.")
Этот необязательный синтаксис использует именованные аргументы функции и является альтернативой простой передаче аргументов. Этот способ имеет ряд преимуществ.
Например, именованные аргументы можно передавать в функцию в любом порядке. То есть можно вызвать printPlayerStatus() так:
// Состояние игрока printPlayerStatus(name = "Madrigal", healthStatus = "has a few scratches.", auraColor = "NONE", isBlessed = true)
Без использования именованных аргументов их можно передавать только в том порядке, в каком они указаны в заголовке функции. Именованные аргументы можно передавать в любом порядке, независимо от их порядка в заголовке функции.
Еще один плюс именованных аргументов - они делают код более ясным. Если функция имеет большое число параметров, порой трудно понять, какие аргументы каким параметрам соответствуют. Это особенно заметно, когда имена передаваемых переменных не совпадают с именами параметров функции. Именованные аргументы всегда имеют те же имена, что и соответствующие им параметры.
В приведенных шагах мы увидели, как объявлять функции и инкапсулировать логику работы. Код стал гораздо упорядоченнее и чище. Вы также узнали о некоторых удобствах, встроенных в синтаксис функций языка Kotlin, которые позволят писать меньше кода в функции с единственным выражением, именованные аргументы и аргументы по умолчанию. В следующих шагах мы научимся пользоваться еще одним видом функций, доступных в Kotlin, - анонимными функциями.
Не забудьте сохранить NyetHack и создать копию, прежде чем приступить к заданиям из следующих шагов.
На следующем шаге мы рассмотрим тип Nothing.