Как вы заметили, черта MultiMap
не делает то, что вы хотите.Тем не менее, вы можете добавить значение по умолчанию самостоятельно, если карта является специально изменяемой или неизменной.Вот пример,
scala> val m = collection.mutable.Map(1 -> 2)
m: scala.collection.mutable.Map[Int,Int] = Map(1 -> 2)
scala> val m2 = m.withDefaultValue(42)
m2: scala.collection.mutable.Map[Int,Int] = Map(1 -> 2)
scala> m2(1)
res0: Int = 2
scala> m2(2)
res1: Int = 42
Как ни странно, вышеприведенное не сработает, если тип m
является абстрактным collection.Map
.Комментарий в исходном коде говорит, что это из-за проблем с отклонениями.