Практика на data class в Kotlin
Сделайте data class Book с полями
isbn, title и year.
Дан список:
val shelf = listOf(
Book("1", "Alpha", 2020),
Book("2", "Beta", 2024),
Book("3", "Gamma", 2020),
)
Выведите число книг с year == 2020.
Сделайте data class Point
с полями x и y.
Даны значения:
val p1 = Point(1, 2)
val p2 = Point(1, 2)
val p3 = Point(2, 1)
Выведите три результата сравнения ==:
p1 и p2, p1 и p3,
p2 и p3.
Сделайте data class User с полями
login и active
по умолчанию true. Дан объект:
val u = User("neo")
Получите копию с active = false.
Выведите login и active новой записи.
Сделайте data class PairTag
с полями key и value.
Дана карта:
val tags = mapOf(
"env" to PairTag("env", "prod"),
"ver" to PairTag("ver", "3"),
)
Для ключа "ver" выведите value
или "missing", если записи нет.
Сделайте data class OrderLine
с полями sku и qty.
Дан список:
val lines = listOf(
OrderLine("a", 2),
OrderLine("b", 1),
OrderLine("a", 3),
)
Выведите сумму qty для sku == "a".
Сделайте data class RGB с полями
r, g и b.
Создайте RGB(10, 20, 30).
Выведите строку toString().
Сделайте data class Version
с полями major и minor.
Даны версии:
val v1 = Version(1, 0)
val v2 = v1.copy(minor = 2)
Выведите major и minor у v1
и у v2 в формате из четырех чисел, разделенных пробелами.
Сделайте data class Hit
с полями page и ms.
Дан список:
val hits = listOf(
Hit("/", 120),
Hit("/api", 40),
Hit("/", 80),
)
Выведите среднее ms для page == "/"
как целое (отбросьте дробную часть).
Сделайте data class Edge
с полями from и to.
Поместите три ребра в mutableSetOf,
добавьте дубликат первого ребра.
Выведите размер набора.
Сделайте data class Row
с полями id и text.
Дана переменная:
val row: Row = Row(5, "note")
Разберите row на id и text
и выведите их в одной строке: сначала id,
затем text, между ними двоеточие.