如何更新 mutable.Map 中的当前值? [英] How to update present values in a mutable.Map?

查看:72
本文介绍了如何更新 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆