Tengo un HashMap mutable y me gustaría utilizarlo como un diccionario predeterminado. El método obvio parece ser usar getOrElse y proporcionar el valor predeterminado cada vez como un segundo valor. Sin embargo, esto parece un poco poco elegante en mi caso de uso ya que el valor predeterminado no cambia.Scala: Uso de HashMap con un valor predeterminado
var x = HashMap(1 -> "b", 2 -> "a", 3 -> "c")
println(x.getOrElse(4, "_")
println(x.getOrElse(5, "_"))
// And so on...
println(x.getOrElse(10, "_"))
¿Hay alguna manera de crear un HashMap (o clase similar) de tal manera que el intento de acceso a claves definidas devuelve un valor predeterminado establecido en la creación de la HashMap? Me he dado cuenta de que HashMap.default se acaba de establecer a lanzar una excepción, pero me pregunto si esto se puede cambiar ...
Para cualquier persona que se topa con esta pregunta, el post de missingfaktor afirma correctamente que "Scala 2.9.1 mutable.Map viene con un método withDefaultValue." – wynnch