Spec-Zone.ru › Kotlin 2

buildMap

kotlin-stdlib/kotlin.collections/buildMap

Начиная с Kotlin: 1.6

inline fun <K, V> buildMap(builderAction: MutableMap<K, V>.() -> Unit): Map<K, V>

Создаёт новое доступное только для чтения Map, заполняя MutableMap с помощью указанного builderAction, и возвращает доступное только для чтения отображение с теми же парами ключ-значение.

Отображение, переданное в качестве получателя в builderAction, действительно только внутри этой функции. Использование его за пределами функции приводит к неопределённому поведению.

Элементы отображения перебираются в том порядке, в котором они были добавлены с помощью builderAction.

Возвращённое отображение сериализуемо (JVM).

Примеры


fun main() { 
   //sampleStart 
   val x = mapOf('b' to 2, 'c' to 3)

val y = buildMap<Char, Int> {
    put('a', 1)
    put('c', 0)
    putAll(x)
    put('d', 4)
}

println(y) // {a=1, c=3, b=2, d=4} 
   //sampleEnd
}

inline fun <K, V> buildMap(capacity: Int, builderAction: MutableMap<K, V>.() -> Unit): Map<K, V>

Создаёт новое доступное только для чтения Map, заполняя MutableMap с помощью указанного builderAction, и возвращает доступное только для чтения отображение с теми же парами ключ-значение.

Отображение, переданное в качестве получателя в builderAction, действительно только внутри этой функции. Использование его за пределами функции приводит к неопределённому поведению.

capacity используется для указания ожидаемого количества пар, добавляемых в builderAction.

Элементы отображения перебираются в том порядке, в котором они были добавлены с помощью builderAction.

Возвращённое отображение сериализуемо (JVM).

Исключения

IllegalArgumentException

если указанная capacity отрицательна.

Примеры


fun main() { 
   //sampleStart 
   val x = mapOf('b' to 2, 'c' to 3)

val y = buildMap<Char, Int>(x.size + 2) {
    put('a', 1)
    put('c', 0)
    putAll(x)
    put('d', 4)
}

println(y) // {a=1, c=3, b=2, d=4} 
   //sampleEnd
}

© 2010–2026 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/build-map.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API