Программисты больше не нужны!
Нужны ИИ инженеры! Хотите научиться? Вступайте в канал!
⊗ktOpDcDs 66 of 123 menu
◀ ▶

Деструктуризация data class в Kotlin

Деструктуризация позволяет присвоить поля data class нескольким переменным сразу. Слева перечисляют имена в скобках, справа - объект; порядок совпадает с порядком свойств в заголовке:

data class User(val name: String, val age: Int)

Создадим объект:

val user = User("Ann", 25) val (n, a) = user println(n) println(a)

Тот же приём работает в цикле for, если обходят список однотипных записей - на каждой итерации поля попадают в локальные имена:

data class Point(val x: Int, val y: Int)

Создадим объекты:

val points = listOf(Point(1, 2), Point(3, 4)) for ((x, y) in points) { println("$x:$y") }

Компилятор генерирует функции component1, component2 и далее по числу свойств в заголовке. Явно вызывать их редко нужно - запись с круглыми скобками читается короче:

data class RGB(val r: Int, val g: Int, val b: Int)

Создадим объект:

val color = RGB(10, 20, 30) val (red, green, blue) = color println(red + green + blue)

Сделайте data class Size с полями width и height. Дан объект:

val box = Size(800, 600)

Получите width и height в двух переменных через деструктуризацию и выведите на экран их произведение.

Сделайте data class Row с полями key и value. Дан список:

val rows = listOf(Row("a", 1), Row("b", 2))

Выведите на экран каждый key в отдельной строке в цикле for с деструктуризацией.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить