get Or Else
Начиная с Kotlin: 1.0
inline fun <T> Array<out T>.getOrElse(index: Int, defaultValue: (Int) -> T): T
inline fun ByteArray.getOrElse(index: Int, defaultValue: (Int) -> Byte): Byte
inline fun ShortArray.getOrElse(index: Int, defaultValue: (Int) -> Short): Short
inline fun IntArray.getOrElse(index: Int, defaultValue: (Int) -> Int): Int
inline fun LongArray.getOrElse(index: Int, defaultValue: (Int) -> Long): Long
inline fun FloatArray.getOrElse(index: Int, defaultValue: (Int) -> Float): Float
inline fun DoubleArray.getOrElse(index: Int, defaultValue: (Int) -> Double): Double
inline fun BooleanArray.getOrElse(index: Int, defaultValue: (Int) -> Boolean): Boolean
inline fun CharArray.getOrElse(index: Int, defaultValue: (Int) -> Char): Char
Возвращает элемент по указанному index или результат вызова функции defaultValue, если index выходит за границы этого массива.
Примеры
import kotlin.test.*
fun main() {
//sampleStart
val emptyArray: Array<Any> = emptyArray()
println(emptyArray.getOrElse(0) { "default" }) // default
val array = arrayOf(1)
println(array.getOrElse(0) { 0 }) // 1
println(array.getOrElse(-1) { 0 }) // 0
println(array.getOrElse(0) { "default" }) // 1
println(array.getOrElse(-1) { "default" }) // default
// arrays of primitive types
val intArray = intArrayOf(1, 2, 3)
println(intArray.getOrElse(0) { 0 }) // 1
println(intArray.getOrElse(-1) { 0 }) // 0
val booleanArray = booleanArrayOf(true, false)
println(booleanArray.getOrElse(0) { false }) // true
println(booleanArray.getOrElse(-1) { false }) // false
val charArray = charArrayOf('a', 'b', 'c')
println(charArray.getOrElse(0) { 'z' }) // a
println(charArray.getOrElse(-1) { 'z' }) // z
// arrays of unsigned types
val uIntArray = uintArrayOf(1u, 2u, 3u)
println(uIntArray.getOrElse(0) { 10u }) // 1
println(uIntArray.getOrElse(-1) { 10u }) // 10
//sampleEnd
}
inline fun <T> List<T>.getOrElse(index: Int, defaultValue: (Int) -> T): T
Возвращает элемент по указанному index или результат вызова функции defaultValue, если index выходит за границы этого списка.
Примеры
import kotlin.math.*
import kotlin.test.*
fun main() {
//sampleStart
val list = listOf(1, 2, 3)
println(list.getOrElse(0) { 42 }) // 1
println(list.getOrElse(2) { 42 }) // 3
println(list.getOrElse(3) { 42 }) // 42
println(list.getOrElse(-1) { 42 }) // 42
val emptyList = emptyList<Int>()
println(emptyList.getOrElse(0) { "no int" }) // no int
//sampleEnd
}
inline fun UIntArray.getOrElse(index: Int, defaultValue: (Int) -> UInt): UInt
inline fun ULongArray.getOrElse(index: Int, defaultValue: (Int) -> ULong): ULong
inline fun UByteArray.getOrElse(index: Int, defaultValue: (Int) -> UByte): UByte
inline fun UShortArray.getOrElse(index: Int, defaultValue: (Int) -> UShort): UShort
Возвращает элемент по указанному index или результат вызова функции defaultValue, если index выходит за границы этого массива.
Примеры
import kotlin.test.*
fun main() {
//sampleStart
val emptyArray: Array<Any> = emptyArray()
println(emptyArray.getOrElse(0) { "default" }) // default
val array = arrayOf(1)
println(array.getOrElse(0) { 0 }) // 1
println(array.getOrElse(-1) { 0 }) // 0
println(array.getOrElse(0) { "default" }) // 1
println(array.getOrElse(-1) { "default" }) // default
// arrays of primitive types
val intArray = intArrayOf(1, 2, 3)
println(intArray.getOrElse(0) { 0 }) // 1
println(intArray.getOrElse(-1) { 0 }) // 0
val booleanArray = booleanArrayOf(true, false)
println(booleanArray.getOrElse(0) { false }) // true
println(booleanArray.getOrElse(-1) { false }) // false
val charArray = charArrayOf('a', 'b', 'c')
println(charArray.getOrElse(0) { 'z' }) // a
println(charArray.getOrElse(-1) { 'z' }) // z
// arrays of unsigned types
val uIntArray = uintArrayOf(1u, 2u, 3u)
println(uIntArray.getOrElse(0) { 10u }) // 1
println(uIntArray.getOrElse(-1) { 10u }) // 10
//sampleEnd
}
inline fun <K, V> Map<K, V>.getOrElse(key: K, defaultValue: () -> V): V
Возвращает значение для указанного key, если оно присутствует и не null. В противном случае возвращает результат вызова функции defaultValue.
Примечание: не рекомендуется использовать эту функцию, если ожидается, что карта будет содержать значения null. Используйте вместо неё getOrElseIfNull или getOrElseIfMissing, чтобы яснее выразить, какое значение нужно вернуть, если ключ сопоставлен со значением null.
Примеры
import kotlin.test.*
import java.util.*
fun main() {
//sampleStart
val map = mutableMapOf<String, Int?>()
println(map.getOrElse("x") { 1 }) // 1
map["x"] = 3
println(map.getOrElse("x") { 1 }) // 3
map["x"] = null
println(map.getOrElse("x") { 1 }) // 1
//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.html