Null в картах в Kotlin
Обращение к карте по ключу в квадратных скобках
возвращает nullable-тип: отсутствующий ключ
дает null. При чтении Map это
уже встречалось; здесь соберем типичные
приемы в одном месте:
val scores = mapOf("Ann" to 5, "Bob" to 4)
val ann = scores["Ann"]
val max = scores["Max"]
println(ann)
println(max)
Ссылку на саму карту тоже можно объявить
nullable. Тогда цепочка начинается с ?.
перед скобками:
val table: Map<String, Int>? = mapOf("x" to 1)
val none: Map<String, Int>? = null
println(table?.["x"])
println(none?.["x"])
Значения в карте могут быть nullable -
Map<String, Int?>. Ключ при этом
обязателен, а число по смыслу может
отсутствовать:
val marks = mapOf("math" to 5, "art" to null)
println(marks["math"])
println(marks["art"])
println(marks["sport"])
Дана карта:
val ages = mapOf("Lea" to 20, "Tom" to 22)
Выведите возраст Tom и возраст Kim
двумя строками.
Дана карта:
val opts = mapOf("a" to 1, "b" to null)
Выведите значение по ключу b и по ключу
c двумя строками.