5) "key3" to var3 -6ren">
gpt4 book ai didi

syntax - Kotlin: map 创建期间的条件项

转载 作者:IT老高 更新时间:2023-10-28 13:41:17 26 4
gpt4 key购买 nike

有没有办法在 Kotlin 中做这样的事情?

mapOf(
"key1" to var1,
"key2" to var2,
if(var3 > 5) "key3" to var3
)

或者唯一的方法是在 map 创建后添加键“key3”?仅当满足某些条件时,我才想将项目添加到 map 中。

最佳答案

一种方法是使用 listOfNotNull(...) + .toMap()并把 nulls 放在你想跳过的地方:

val map = listOfNotNull(
"key1" to var1,
"key2" to var2,
if (var3 > 5) "key3" to var3 else null
).toMap()

您还可以使用 .takeIf { ... } ,但请注意,无论条件如何,它都会计算对,因此如果对表达式调用函数,无论如何都会调用它:

val map = listOfNotNull(
/* ... */
("key3" to var3).takeIf { var3 > 5 }
).toMap()

关于syntax - Kotlin: map 创建期间的条件项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46075075/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com