getOrNull()
, getOrDefault()
, 和 getOrElse()
是用于处理集合(Collections)中元素获取的三个不同函数。
-
getOrNull(index: Int)
:- 该函数用于从列表(List)或数组(Array)中获取指定索引位置的元素。
- 如果索引位置有效,即在范围内,则返回该索引位置的元素;如果索引位置无效(超出范围),则返回
null
。 - 这有助于避免数组越界异常,因为它不会抛出异常,而是返回一个可能为
null
的值。
val myList = listOf(1, 2, 3, 4, 5) val element = myList.getOrNull(2) // 返回 3,因为索引 2 对应的元素是 3
-
getOrDefault(key: K, defaultValue: V)
:- 该函数用于从映射(Map)中获取指定键对应的值。
- 如果映射包含指定键,则返回与该键相关联的值;如果映射不包含指定键,则返回指定的默认值。
- 这有助于避免在键不存在时抛出异常,而是提供一个默认值。
val myMap = mapOf("a" to 1, "b" to 2, "c" to 3) val value = myMap.getOrDefault("b", 0) // 返回 2,因为键 "b" 对应的值是 2
-
getOrElse(index: Int, defaultValue: (Int) -> T)
:- 该函数用于从列表(List)或数组(Array)中获取指定索引位置的元素。
- 如果索引位置有效,则返回该索引位置的元素;如果索引位置无效,则返回通过 lambda 函数提供的默认值。
- 与
getOrNull()
不同,getOrElse()
允许提供一个计算默认值的 lambda 函数。
val myList = listOf(1, 2, 3, 4, 5) val element = myList.getOrElse(7) { index -> index * 2 } // 返回 14,因为索引 7 不存在,使用 lambda 函数计算默认值