Spec-Zone.ru › Kotlin 2

getOrElse

kotlin-stdlib/kotlin.collections/getOrElse

Начиная с 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
}

@ExperimentalUnsignedTypes
inline fun UIntArray.getOrElse(index: Int, defaultValue: (Int) -> UInt): UInt
@ExperimentalUnsignedTypes
inline fun ULongArray.getOrElse(index: Int, defaultValue: (Int) -> ULong): ULong
@ExperimentalUnsignedTypes
inline fun UByteArray.getOrElse(index: Int, defaultValue: (Int) -> UByte): UByte
@ExperimentalUnsignedTypes
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

Spec-Zone.ru

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