Kotlin getOrElse用法及代码示例

本文方法及代码示例基于Kotlin 2.1.20 Released

getOrElse 所在包 kotlin.collections.getOrElse,其相关用法介绍如下:

用法一

kotlin 复制代码
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 函数的结果。

用法二

kotlin 复制代码
inline fun <T> List<T>.getOrElse(
    index: Int, 
    defaultValue: (Int) -> T
): T

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

用法三

kotlin 复制代码
inline fun <K, V> Map<K, V>.getOrElse(
    key: K, 
    defaultValue: () -> V
): V

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

代码示例:

kotlin 复制代码
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

相关方法

相关推荐
私人珍藏库1 天前
[Android] 卫星地图 共生地球 v1.1.22
android·app·工具·软件·多功能
冰珊孤雪1 天前
Android Studio Panda革命性升级:内存诊断、构建标准化与AI调试全解析
android·前端
_李小白1 天前
【OSG学习笔记】Day 23: ClipNode(动态裁剪)
android·笔记·学习
Eagsen CEO1 天前
如何让 Gemini 在 Android Studio 中顺利工作
android·ide·android studio
博.闻广见1 天前
19-Compose开发-LazyColumn
kotlin·composer
ywf12151 天前
FlinkCDC实战:将 MySQL 数据同步至 ES
android·mysql·elasticsearch
鹏程十八少1 天前
9. Android Shadow插件化如何解决资源冲突问题和实现tinker热修复资源(源码分析4)
android·前端·面试
gechunlian881 天前
MySQL - Navicat自动备份MySQL数据
android·数据库·mysql
快乐非自愿1 天前
MySQL优化全攻略:索引、SQL与分库分表的最佳实践
android·sql·mysql
糖猫猫cc1 天前
Kite 实现逻辑删除
java·kotlin·orm·kite