:Scala'da mutable.Set.foreach bir hata? Bu kodu denediğimde, scala 2.9.1 kullanıyorum
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) })
sonucu bir tüm unsurları listelemedi
0
98
2
1
4
3
8
gibi bir şey oldu. Bundan sonra, boş set yerine Set (9, 7) olur. Bana çok garip geliyor, bu bir hata mı yoksa foreach yaparken setin kendisini değiştiremeyiz mi?
Neden düşüş yok? Iteratörler için yeni bir kişi için çok geçerli bir soru ve nasıl çalıştığını düşünüyorum –
Ben böyle bir şey görmedim, ama benzer bir sonuç elde edebilirsiniz "a.flatMap (x => {println (x); if (cond) Hiçbiri Başka (x)}) '' Yok 'öğeleri ile yeni bir set döndürecektir. – jcern
Sadece geçerli bir soru değil, http://stackoverflow.com/questions/2803085/iterators-for-mutable-collections-in-scala ve http://stackoverflow.com/questions/4417994/scala-remove adreslerini çoğaltır. -in-yer-hepsi-elemanları-bir-listbuffer-bu-karşılamak-bir-durumu ve http://stackoverflow.com/questions/2500548/what-is-the-proper-way-to-remove-elements -den-a-scala-değiştirilebilen harita-kullanarak-a-predi –