Ich lasse die ursprüngliche Antwort unten, obwohl es ziemlich falsch ist, da ich die Frage nicht richtig verstanden habe.
Scalas gegenwärtige Kollektionsbibliothek erzwingt ziemlich viele verschiedene Hinzufüge-Methoden für veränderbare/unveränderliche, wahrscheinlich in der Hoffnung, im Quellcode klar zu machen, welche Art von Sammlung verwendet wird. Wie gesagt, wird dies in 2.8 überarbeitet, und diese Prämisse geht weg.
Daher bieten die abstrakten Klassen nicht die Methoden, an die Sie denken, weil sie für unveränderlich, aber nicht für veränderlich existieren können, und umgekehrt. Oder sie haben die gleiche Name, aber verschiedene Implementierungen.
Und daher wäre es unmöglich, sie in der Basisklasse bereitzustellen.
Aber darüber hinaus feststellen, dass, auf diese Weise, wenn Sie einen scala.collection.map erhalten, Sie können nicht es vermasseln, indem es als wandelbar Behandlung, wenn Sie eine unveränderliche empfangen, oder umgekehrt.
Und jetzt für die falsche Antwort. :)
Sie können (nein, Sie können nicht - der folgende Code verwendet scala.collection.imutable.Map).
scala> val x = Map(1 -> 'a', 2 -> 'b')
x: scala.collection.immutable.Map[Int,Char] = Map(1 -> a, 2 -> b)
scala> x ++ Map(3 -> 'c')
res5: scala.collection.immutable.Map[Int,Char] = Map(1 -> a, 2 -> b, 3 -> c)
scala> var y = x
y: scala.collection.immutable.Map[Int,Char] = Map(1 -> a, 2 -> b)
scala> y += (3 -> 'c')
scala> y
res7: scala.collection.immutable.Map[Int,Char] = Map(1 -> a, 2 -> b, 3 -> c)
scala> x + (3 -> 'c')
res8: scala.collection.immutable.Map[Int,Char] = Map(1 -> a, 2 -> b, 3 -> c)
Hmmmm. Es scheint mir, dass durch die Schaffung von zwei Typen, die beide Map heißen, beide Sammlungen erweitert werden.Map aber verhält sich ganz anders, die Scala-Bibliotheks-Ersteller haben bereits die Situation geschaffen, in der ich "vermasseln kann, indem man [etwas] als veränderlich behandelt, wenn [es] unveränderlich ist". Wenn sie das nicht wollten, sollten sie keinen gemeinsamen Supertyp haben! –
Sie sind beide Karten in dem Sinne, dass sie beide Sammlungen sind, auf die mit Schlüsseln zugegriffen werden kann. Das ist eine Karte. Und wie du selbst herausgefunden hast, wurden die Klassen geschrieben, damit du dich nicht vermasselst. –