前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Kotlin】集合操作 ① ( List 创建与元素获取 | 安全获取集合元素 | getOrElse | getOrNull )

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

作者头像
韩曙亮
发布2023-03-30 18:47:37
1.4K0
发布2023-03-30 18:47:37
举报
文章被收录于专栏:韩曙亮的移动开发专栏

文章目录

一、List 创建与元素获取


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

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

代码语言:javascript
复制
fun main() {
    val list = listOf("Tom", "Jerry")
    println("${list[0]}")
}

上述代码执行结果 :

代码语言:javascript
复制
Tom

二、安全获取集合元素


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

1、getOrElse 函数

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

代码语言:javascript
复制
/**
 * 返回给定[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? 函数原型 :

代码语言:javascript
复制
/**
 * 返回给定[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 创建与元素获取代码示例


代码示例 :

代码语言:javascript
复制
fun main() {
    var list = listOf("Tom", "Jerry")
    println("${list[0]}")

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

执行结果 :

代码语言:javascript
复制
Tom
UnKnown
null
在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-01-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、List 创建与元素获取
  • 二、安全获取集合元素
    • 1、getOrElse 函数
      • 2、getOrNull函数
      • 三、List 创建与元素获取代码示例
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档