I’m working with a map in Scala and doing the usual ‘if there’s no value associated with a key, create it, put it in the map and return it’:
def alphaMemory(key : AlphaMemoryKey) = { var am = map.getOrElse(key, null) if(am == null) { am = new AlphaMemory(key) map.put(key, am) } am }
To me, this does not feel like idiomatic Scala code. It feels like Java. Is there a more succinct way of writing this? It looked like maybe I could override Map.default() to insert the new value and return it. Not sure though.
Thanks!
mutable.MaphasgetOrElseUpdatewhich does exactly what you want, no idiom necessary.