Scala: использование HashMap со значением по умолчанию

У меня есть изменяемый HashMap, и я хотел бы использовать его как словарь по умолчанию. Очевидный метод, по-видимому, заключается в использовании getOrElse и предоставлении значения по умолчанию каждый раз в качестве второго значения. Однако в моем случае использования это выглядит немного не элегантно, поскольку значение по умолчанию не меняется.

var x = HashMap(1 -> "b", 2 -> "a", 3 -> "c")

println(x.getOrElse(4, "_")
println(x.getOrElse(5, "_"))
// And so on...
println(x.getOrElse(10, "_"))

Есть ли способ создать HashMap (или аналогичный класс), такой, что попытка получить доступ к неопределенным ключам возвращает значение по умолчанию, установленное при создании хэш-карты? Я замечаю, что HashMap.default просто выбрасывает исключение, но мне интересно, можно ли это изменить ...

31
задан 6 September 2010 в 03:48
поделиться