Построитель карты в Kotlin
Для ассоциативного массива в Kotlin есть
buildMap. Она работает так же, как
построитель списка: создается изменяемая карта,
блок заполняет пары, наружу возвращается
неизменяемая копия.
В блоке используют оператор put или
запись через квадратные скобки. Ключ и значение
задают на отдельных строках:
fun main() {
val caps = buildMap {
put("fr", "paris")
put("no", "oslo")
}
println(caps["no"])
}
Пары можно добавлять в цикле, если ключи приходят из другой коллекции. Карта растет по шагам внутри одного блока:
fun main() {
val codes = listOf("a", "b", "c")
val index = buildMap {
for ((i, code) in codes.withIndex()) {
put(code, i)
}
}
println(index["b"])
}
Тип ключа и значения выводится из первых
добавлений или задается явно у buildMap,
если карта может оказаться пустой:
fun main() {
val emptyRates = buildMap<String, Int> { }
println(emptyRates.size)
}
Соберите карту из двух товаров: "pen"
к 3 и "ink" к 9.
Выведите цену "pen".
Дан список слов "go", "kotlin".
Постройте карту «слово - длина» и выведите
длину "kotlin".