gpt4 book ai didi

Kotlin mutableMap foreach

转载 作者:IT老高 更新时间:2023-10-28 13:35:40 27 4
gpt4 key购买 nike

我的问题是更多地了解文档。上面写着:

fun <K, V> Map<out K, V>.forEach(
action: (Entry<K, V>) -> Unit)

但是我不明白如何实现它。如何在循环中获取 Key 和 Value?

我想对 listItems 中的每个项目的价格值求和。 map 将字符串与项目相关联

data class Item(val name: String, val description: String, val price: String, val index: Int)

想象 listItems 包含这个:

listItems["shirt"]-> name: shirt, description: lorem ipsum, price: 10, index: 0

listItems["shoes"]-> name: shoes, description: lorem ipsum, price: 30, index: 0

所以代码应该是这样的:

var total: Int = 0
listItems.forEach {
total += parseInt(value.price)
}

但是我不明白如何引用文档的 V 来访问这个 value

最佳答案

传递给 forEach { ... } 的 lambda接受 Entry<K, V> ,您可以使用此条目,访问它的value :

listItems.forEach { total += parseInt(it.value.price) }

这相当于使用 explicit lambda parameter :

listItems.forEach { entry -> total += parseInt(entry.value.price) }

或者,从 Kotlin 1.1 开始,您可以使用 destructuring in lambdas :

listItems.forEach { (_, value) -> total += parseInt(value.price) }

如果只需要对值求和,可以使用 sumBy { ... } :

val total = listItems.entries.sumBy { parseInt(it.value.price) }

关于Kotlin mutableMap foreach,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42785186/

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