Я работаю с картой в 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 (), чтобы вставить новое значение и вернуть его. Хотя не уверен.
Спасибо!