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