Шаг 154.
Основы Kotlin.
Инициализация. Именованные аргументы

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

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

    Сравните два варианта создания экземпляра Player:

    val player = Player(name="Madrigal", healthPoints =100, isBlessed=true, isImmortal=false)
    val player = Player("Madrigal", 100, true, false)

    Какой вариант, по-вашему, понятнее? Если первый, то мы с вами солидарны.

    Синтаксис именованных аргументов позволяет указать имя параметра для каждого аргумента, чтобы внести дополнительную ясность. Это особенно полезно, когда имеется несколько параметров одного типа: если в вызов конструктора передаются значения true и false, именованные аргументы помогут вам распознать, какое значение какому параметру принадлежит. Кроме устранения двусмысленности, именованные аргументы дают еще одно преимущество: они позволяют передавать аргументы в функцию или конструктор в произвольном порядке. Неименованные аргументы должны передаваться в том порядке, в каком они указаны в конструкторе.

    Вы могли заметить, что вспомогательный конструктор, который вы написали для Player, использует именованные аргументы, похожие на те, которыми мы уже пользовались ранее.

    constructor(name: String) : this(name,
            healthPoints = 100,
            isBlessed = true,
            isImmortal = false)
}

    Если вам надо передать в конструктор или в функцию несколько аргументов, мы рекомендуем использовать именованные аргументы. Благодаря им проще понять, какие аргументы какому параметру передаются.

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




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