Kotlin getOrPut用法及代码示例

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

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

用法:

kotlin 复制代码
inline fun <K, V> MutableMap<K, V>.getOrPut(
    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.getOrPut("x") { 2 }) // 2
    // subsequent calls to getOrPut do not evaluate the default value
    // since the first getOrPut has already stored value 2 in the map
    println(map.getOrPut("x") { 3 }) // 2

    // however null value mapped to a key is treated the same as the missing value
    println(map.getOrPut("y") { null }) // null
    // so in that case the default value is evaluated
    println(map.getOrPut("y") { 42 }) // 42
    //sampleEnd
}

// 输出
2
2
null
42

相关方法

相关推荐
城东米粉儿6 小时前
Android AIDL 笔记
android
城东米粉儿6 小时前
Android 进程间传递大数据 笔记
android
城东米粉儿6 小时前
Android KMP 笔记
android
冬奇Lab7 小时前
WMS核心机制:窗口管理与层级控制深度解析
android·源码阅读
松仔log8 小时前
JetPack——Paging
android·rxjava
城东米粉儿9 小时前
Android Kotlin DSL 笔记
android
城东米粉儿9 小时前
Android Gradle 笔记
android
城东米粉儿9 小时前
Android Monkey 笔记
android
城东米粉儿9 小时前
Android 组件化 笔记
android