Spec-Zone.ru › Kotlin 2

getOrElseIfMissing

kotlin-stdlib/kotlin.collections/getOrElseIfMissing

Требования к платформе и версии: Common (2.4)

@ExperimentalStdlibApi
inline fun <K, V> Map<K, V>.getOrElseIfMissing(key: K, defaultValue: () -> V): V

Возвращает значение для заданного ключа, если оно присутствует. В противном случае возвращает результат функции defaultValue.

В отличие от getOrElseIfNull, эта функция возвращает сопоставленное значение, даже если оно равно null.

Обратите внимание, что атомарность операции не гарантируется, если карта изменяется одновременно с её использованием.

Примеры

import kotlin.test.*
import java.util.*

fun main() { 
   //sampleStart 
   val map = mutableMapOf<String, Int?>()
println(map.getOrElseIfMissing("x") { 1 }) // 1

map["x"] = 3
println(map.getOrElseIfMissing("x") { 1 }) // 3

map["x"] = null
println(map.getOrElseIfMissing("x") { 1 }) // null 
   //sampleEnd
}

Требования к платформе и версии: JVM (2.4)

@ExperimentalStdlibApi
inline fun <K, V> ConcurrentMap<K, V>.getOrElseIfMissing(key: K, defaultValue: () -> V): V

Возвращает значение для заданного ключа, если оно присутствует. В противном случае возвращает результат функции defaultValue.

В отличие от getOrElseIfNull, эта функция возвращает сопоставленное значение, даже если оно равно null.

Эта функция оптимизирована для карт, которые могут изменяться одновременно: получение значения для заданного ключа и проверка его наличия в карте выполняются атомарно.

Примеры

import kotlin.test.*
import java.util.*

fun main() { 
   //sampleStart 
   val map = mutableMapOf<String, Int?>()
println(map.getOrElseIfMissing("x") { 1 }) // 1

map["x"] = 3
println(map.getOrElseIfMissing("x") { 1 }) // 3

map["x"] = null
println(map.getOrElseIfMissing("x") { 1 }) // null 
   //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/get-or-else-if-missing.html

Spec-Zone.ru

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