Mam zmienną mapę HashMap i chciałbym użyć jej jako domyślnego słownika. Oczywistą metodą wydaje się być użycie getOrElse i podanie wartości domyślnej za każdym razem jako drugiej wartości. Wydaje się to jednak trochę nieeleganckie w moim przypadku użycia, ponieważ domyślna wartość nie zmienia się.Scala: Używanie HashMap z domyślną wartością
var x = HashMap(1 -> "b", 2 -> "a", 3 -> "c")
println(x.getOrElse(4, "_")
println(x.getOrElse(5, "_"))
// And so on...
println(x.getOrElse(10, "_"))
Czy istnieje jakiś sposób, aby utworzyć HashMap (lub podobnej klasy) taką, że próbujesz uzyskać dostęp do niezdefiniowanych kluczy zwraca wartość domyślną ustawioną na stworzeniu HashMap? Zauważyłem, że HashMap.default jest po prostu ustawiona na wyjątek, ale zastanawiam się, czy można to zmienić ...
Do każdego, kto natyka się na to pytanie, po missingfaktor za słusznie stwierdza, że „Scala 2.9.1 mutable.Map pochodzi z metody withDefaultValue.” – wynnch