是否有一种优雅的方式来更新Map中已存在的值?
这看起来太吓人了:
val a = map.get ( something )
if ( a != null ) // case .. excuse my old language
a.apply( updateFunction )
else
map.put ( something, default )
Run Code Online (Sandbox Code Playgroud)
Rex*_*err 11
大多数情况下,您可以插入可在创建时更新的内容(例如,如果它是计数,则将0放入其中然后更新为1而不是仅将1放入开始).在这种情况下,
map.getOrElseUpdate(something, default).apply(updateFunction)
Run Code Online (Sandbox Code Playgroud)
在极少数情况下,您无法以这种方式组织事物,
map(something) = map.get(something).map(updateFunction).getOrElse(default)
Run Code Online (Sandbox Code Playgroud)
(但你必须提到something
两次).
归档时间: |
|
查看次数: |
3278 次 |
最近记录: |