このコードを試すとき、私はscala 2.9.1を使用しています:
import scala.collection.mutable
val a = mutable.Set(1,2,3,4,7,0,98,9,8)
a.foreach(x => { println(x); a.remove(x) })
結果は次のようなものでした
0
98
2
1
4
3
8
aのすべての要素をリストしていませんでした。この後、a は空集合ではなく Set(9, 7) になります。私には非常に奇妙に見えますが、これはバグですか、それとも foreach を実行するときにセット自体を変更できないのでしょうか?