Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗ktOpDcMp 68 of 123 menu
◀ ▶

Data class в карте в Kotlin

Карта Map связывает ключ и значение - как в уроке про карты объектов, только значением часто служит запись data class с несколькими полями. Литерал mapOf связывает ключ со знаком to и готовым объектом:

data class User(val name: String, val age: Int) fun main() { val byId = mapOf( 1 to User("Ann", 25), 2 to User("Bob", 30), ) println(byId[1]?.name) }

Доступ по ключу возвращает nullable-ссылку: если ключа нет, результат null. Поля записи читают оператором ?. или после проверки на null:

data class Config(val host: String, val port: Int) fun main() { val env = mapOf("prod" to Config("api.app", 443)) val cfg = env["prod"] if (cfg != null) { println(cfg.port) } }

Карту можно обойти в цикле: на каждой паре key и value значение уже имеет тип data class и печатается или сравнивается как отдельный объект:

data class Stats(val views: Int, val likes: Int) fun main() { val pages = mapOf( "home" to Stats(100, 4), "blog" to Stats(50, 2), ) for ((slug, st) in pages) { println("$slug ${st.views}") } }

Сделайте data class Phone с полями model и year. Дана карта:

val stock = mapOf( "p1" to Phone("X1", 2022), "p2" to Phone("Y2", 2024), )

Выведите на экран модель телефона с ключом "p2" из карты stock.

Сделайте data class Limit с полями max и used. Соберите карту из двух ключей "free" и "pro" с разными лимитами. Выведите на экран значение used для тарифа "free".

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