24
我在斯卡拉地图工作和做通常的“如果没有与键关联的值,创建它,把它放在地图上并返回”:成语斯卡拉地图UPSERT
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()插入新值并返回它。但不知道。
谢谢!
非常好!我没有意识到默认参数是“by-name”,所以我确信自己每次调用它都会被评估。谢谢! – 2009-01-03 04:51:42