get Or Else If Missing
Требования к платформе и версии: Common (2.4)
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)
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