我正在使用Scala中的地图并执行通常的"如果没有与键关联的值,创建它,将其放入地图并返回它":
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()来插入新值并返回它.不过不确定.
谢谢!
mutable.Map
有getOrElseUpdate
什么你想要的,没有必要的成语.