getOrElse所在位置是kotlin.collections.getOrElse,其相关用法介绍如下。

用法一

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
@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 超出此数组的范围,则返回给定 index 处的元素或调用 defaultValue 函数的结果。

用法二

inline fun <T> List<T>.getOrElse(
    index: Int, 
    defaultValue: (Int) -> T
): T

如果 index 超出此列表的范围,则返回给定 index 处的元素或调用 defaultValue 函数的结果。

用法三

inline fun <K, V> Map<K, V>.getOrElse(
    key: K, 
    defaultValue: () -> V
): V

返回给定键的值,或者如果给定键没有条目,则返回 defaultValue 函数的结果。

例子:

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

fun main(args: Array<String>) {
//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
}

输出:

1
3
1