estoy trabajando con un mapa en la Scala y haciendo el habitual "si no hay un valor asociado a una clave, cree él, lo puso en el mapa y devolverlo":idiomático Scala Mapa upsert
def alphaMemory(key : AlphaMemoryKey) = {
var am = map.getOrElse(key, null)
if(am == null) {
am = new AlphaMemory(key)
map.put(key, am)
}
am
}
Para mí, esto no se siente como un código Scala idiomático. Se siente como Java. ¿Hay alguna forma más concisa de escribir esto? Parecía que tal vez podría anular Map.default() para insertar el nuevo valor y devolverlo. Aunque no estoy seguro
Gracias!
¡Excelente! No me di cuenta de que el parámetro predeterminado era "por nombre", así que me había convencido de que se evaluaría cada vez que se llamaba. ¡Gracias! –
¿Me interesaría ver cómo se haría esto con los mapas inmutables? –
@Marcus Downing Eche un vistazo a [esta pregunta] (http://stackoverflow.com/q/4385976/460387) para obtener soluciones para 'inmutable.Map' –