如何更新 mutable.Map 中的当前值? [英] How to update present values in a mutable.Map?
本文介绍了如何更新 mutable.Map 中的当前值?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
是否有一种优雅的方式来更新 Map 中已经存在的值?
Is there an elegant way in to update an already existing value in a Map?
这看起来太吓人了:
val a = map.get ( something )
if ( a != null ) // case .. excuse my old language
a.apply( updateFunction )
else
map.put ( something, default )
推荐答案
大多数时候你可以插入一些可以在创建时更新的内容(例如,如果它是一个计数,你将 0 放入其中,然后更新为 1)只需放入 1 即可开始).在这种情况下,
Most of the time you can insert something that can be updated when it's created (e.g. if it's a count, you put 0 in it and then update to 1 instead of just putting 1 in to start). In that case,
map.getOrElseUpdate(something, default).apply(updateFunction)
在极少数情况下,您无法以这种方式组织事物,
In the rare cases where you can't organize things this way,
map(something) = map.get(something).map(updateFunction).getOrElse(default)
(但你必须两次引用something
).
(but you have to refer to something
twice).
这篇关于如何更新 mutable.Map 中的当前值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文