29

我正在使用 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() 以插入新值并返回它。不过不确定。

谢谢!

4

1 回答 1

39

mutable.Maphas getOrElseUpdatewhich 正是你想要的,不需要成语。

于 2009-01-03T04:46:00.257 回答