Ein Bug von mutable.Set.foreach in scala?

8

Ich benutze scala 2.9.1, wenn ich diesen Code versuche:

%Vor%

Das Ergebnis war etwas wie

%Vor%

, die nicht alle Elemente von a aufgelistet hat. Danach wird a zu Set (9, 7) statt leerer Satz. Es sieht sehr seltsam für mich aus, ist es ein Fehler oder wir können das Set selbst nicht ändern, wenn wir foreach machen?

    
user1923692 22.12.2012, 15:00
quelle

1 Antwort

10

Sie dürfen eine Sammlung nicht ändern, während Sie sie durchlaufen oder darüber iterieren.

Das ist in Scala genauso wie in Java (und den meisten anderen Programmiersprachen / Bibliotheken). Außer in Java bietet die Klasse Iterator eine remove -Methode, die anstelle der Methode remove der Sammlung verwendet werden kann, um Elemente beim Iterieren mit Iterator zu entfernen (jedoch werden alle anderen Iteratoren dieser Auflistung ungültig) in Benutzung sein). Scala Iteratoren bieten keine solche Methode.

    
sepp2k 22.12.2012 15:04
quelle