【Kotlin】集合操作 ① ( List 创建与元素获取 | 安全获取集合元素 | getOrElse | getOrNull )

时间:2023-01-23 07:58:02


文章目录

  • ​​一、List 创建与元素获取​​
  • ​​二、安全获取集合元素​​
  • ​​1、getOrElse 函数​​
  • ​​2、getOrNull函数​​
  • ​​三、List 创建与元素获取代码示例​​






一、List 创建与元素获取



Kotlin 中的集合分为两类 , 只读集合 和 可变集合



调用 ​​listOf​​​ 函数 , 可以 直接创建 List 集合 ;
通过 ​​​[]​​ 下标可以 直接获取 List 集合中的元素 ;

fun main() {
val list = listOf("Tom", "Jerry")
println("${list[0]}")
}

上述代码执行结果 :

Tom






二、安全获取集合元素



除了使用 ​​[]​​ 下标获取 List 集合元素外 , Kotlin 还提供了 安全获取集合元素的 方法 : getOrElse 和 getOrNull



1、getOrElse 函数



List<T>.getOrElse(index: Int, defaultValue: (Int) -> T): T 函数原型 :

/**
* 返回给定[index]处的元素,如果[index]不在列表范围内,则返回调用[defaultValue]函数的结果。
*/
@kotlin.internal.InlineOnly
public inline fun <T> List<T>.getOrElse(index: Int, defaultValue: (Int) -> T): T {
return if (index >= 0 && index <= lastIndex) get(index) else defaultValue(index)
}

参数分析 : 在该函数中 , 传入了两个参数 , 第一个参数是元素的索引 , 第二个参数是一个 Lambda 表达式 ; 该 Lambda 表达式的 Int 类型参数就是 ​​index: Int​​ 参数 ;

返回值分析 : 返回给定[index]处的元素,如果[index]不在列表范围内,则 返回调用[defaultValue]函数的结果。



2、getOrNull函数



List<T>.getOrNull(index: Int): T? 函数原型 :

/**
* 返回给定[index]处的元素,如果[index]不在列表范围内,则返回' null '。
*/
public fun <T> List<T>.getOrNull(index: Int): T? {
return if (index >= 0 && index <= lastIndex) get(index) else null
}

参数分析 : 在该函数中 , 传入函数索引参数 ;

返回值分析 : 返回给定[index]处的元素,如果[index]不在列表范围内,则返回’ null '。






三、List 创建与元素获取代码示例



代码示例 :

fun main() {
var list = listOf("Tom", "Jerry")
println("${list[0]}")

println(list.getOrElse(2, {"UnKnown"}))
println(list.getOrNull(3))
}

执行结果 :

Tom
UnKnown
null

【Kotlin】集合操作 ① ( List 创建与元素获取 | 安全获取集合元素 | getOrElse | getOrNull )