Шаг 153.
Основы Kotlin.
Инициализация. Аргументы по умолчанию

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

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

class Player (_name: String,
              var healthPoints: Int = 100,
              val isBlessed: Boolean,
              private val isImmortal: Boolean) {
    var name = _name
        get() = field.capitalize()
        private set(value) {
            field = value.trim()
        }

    constructor(name: String) : this(name,
            isBlessed = true,
            isImmortal = false) {
        if (name.toLowerCase() == "kar") healthPoints = 40
    }
    .   .   .   . 
}


Рис.1. Объявление аргумента по умолчанию в конструкторе (Player.kt)

    Добавив значение по умолчанию для параметра healthPoints в главный конструктор, вы можете убрать из объявления вспомогательного конструктора передачу аргумента healthPoints в главный конструктор. Это дает еще один вариант создания экземпляра Player: с аргументом и без аргумента для healthPoints.

    // Player создается с 64 очками здоровья вызовом главного конструктора 
    val player = Player("Madrigal", 64, true, false)
    // Player создается со 100 очками здоровья вызовом главного конструктора 
    val player = Player("Madrigal", true, false)
    // Player создается со 100 очками здоровья вызовом вспомогательного
    // конструктора
    val player = Player("Madrigal")

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




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