我正在使用Scala中的 Map 并执行通常的“如果没有与键关联的值,创建它,将其放入 Map 并返回它”:
def alphaMemory(key : AlphaMemoryKey) = {
var am = map.getOrElse(key, null)
if(am == null) {
am = new AlphaMemory(key)
map.put(key, am)
}
am
}
对我来说,这并不像惯用的Scala代码 . 感觉像Java . 有没有更简洁的写作方式?看起来我可以覆盖Map.default()来插入新值并返回它 . 不过不确定 .
谢谢!
1 回答
mutable.Map有getOrElseUpdate,它完全符合您的要求,无需成语 .