Значения по умолчанию в data class в Kotlin
Параметры первичного конструктора data class
могут иметь значение по умолчанию после знака = -
правило то же, что для обычного класса в разделе
«Значения по умолчанию». При создании объекта такие
аргументы можно не передавать:
data class User(val name: String, val active: Boolean = true)
fun main() {
val a = User("Ann")
val b = User("Bob", false)
println(a.active)
println(b.active)
}
Пропущенные параметры нужно оставлять в конце списка или указывать имена явно, иначе компилятор не поймёт, какое поле заполняется:
data class Point(val x: Int = 0, val y: Int = 0)
fun main() {
val origin = Point()
val p = Point(x = 5)
println(origin)
println(p)
}
Значения по умолчанию участвуют в copy,
equals и toString так же, как
обычные поля. Объект без явно переданного
аргумента хранит именно default из объявления:
data class Tag(val code: String, val level: Int = 1)
fun main() {
val t = Tag("go")
println(t.copy(level = 2))
}
Сделайте data class Note с полями
text и pinned; для
pinned задайте false
по умолчанию.
Создайте заметку только с текстом "todo"
и выведите на экран поле pinned.
Сделайте data class Margin с полями
top, right, bottom,
left; для всех сторон задайте 8
по умолчанию.
Создайте объект с top = 16 и выведите
его в консоль.