我正在使用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) })
Run Code Online (Sandbox Code Playgroud)
结果是这样的
0
98
2
1
4
3
8
Run Code Online (Sandbox Code Playgroud)
没有列出a的所有元素.在此之后,a变为Set(9,7)而不是空集.它对我来说看起来很奇怪,它是一个bug还是我们在做foreach时无法修改集合本身?
我刚刚发现Java中有这样的迭代器.
Scala是否具有带有'set'和'remove'方法的迭代器,用于迭代(和修改)像array这样的可变集合?
如果没有这样的迭代器,那么有充分的理由吗?