如何在只进行一次map查找的情况下增加给定键的值?
如何在只进行一次map查找的情况下增加给定键的值?
假设我有一个地图:
var inventory = mutableMapOf("apples" to 1, "oranges" to 2)
我想把苹果的数量加1。
然而,这个方法不起作用:
inventory["apples"]!!++ // Error:(9, 4) Variable expected
这个方法也不行:
var apples = inventory["apples"]!! ++apples println(inventory["apples"]) // prints "1" => the value was not incremented.
这很令人惊讶,因为在Kotlin中,当数字存储在通用对象的实例中时,它们会被包装起来。我不会认为会复制。
似乎唯一的方法是这样的:
var apples = inventory["apples"]!! ++apples inventory["apples"] = apples println(inventory["apples"])
这用了两个查找地图的操作,而且非常丑陋而冗长。
有没有一种方法可以只用一个查找操作来增加给定键的值?
还有人能解释一下为什么前两种方法不起作用吗?
admin 更改状态以发布 2023年5月23日