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

相关方法

相关推荐
黄林晴15 分钟前
Android Studio Quail 1 Canary 5 发布,Compose 截图测试 + R8 混淆 mapping 问题解决
android·android studio
山上春17 分钟前
MT-Workflow2:面向 Odoo 的可视化审批工作流引擎
android·workflow·odoo·bpmn
恋猫de小郭17 分钟前
Flutter GenUI 0.9 和 A2UI 0.9 发布,全动动态 UI 支持,AI 在 App 里直出界面
android·flutter·ios
Carson带你学Android1 小时前
Flutter 官方 Skills:一条命令,让 AI 写出「专家级别」的代码
android
三少爷的鞋1 小时前
Android 架构系列之MVVM 和 MVI 算架构吗?
android·kotlin
白菜欣10 小时前
Linux — 进程控制
android·linux·运维
俩个逗号。。13 小时前
Gradle 踩过的坑
android
土星碎冰机17 小时前
ai自学笔记(3.安卓篇,制作app
android·笔记·ai
随遇丿而安18 小时前
专题:Glide / Coil / Fresco,不是三种写法,而是三套图片加载思路
android
只可远观19 小时前
Android 自动埋点(页面打开 / 关闭 + 点击事件)完整方案
android·kotlin