पर इटेटरेटर का अप्रत्याशित व्यवहार कोई भी समझा सकता है कि ये इटरेटर अलग-अलग व्यवहार क्यों करते हैं? मैं आम तौर पर एक स्ट्रिंग को IndexedSeq[Char]
की तरह कार्य करने की अपेक्षा करता हूं। क्या यह कहीं भी दस्तावेज है?स्ट्रिंग
val si: Iterator[Char] = "uvwxyz".iterator
val vi: Iterator[Char] = "uvwxyz".toIndexedSeq.iterator
val sr = for (i <- 1 to 3)
yield si take 2 mkString
//sr: scala.collection.immutable.IndexedSeq[String] = Vector(uv, uv, uv)
val vr = for (i <- 1 to 3)
yield vi take 2 mkString
//vr: scala.collection.immutable.IndexedSeq[String] = Vector(uv, wx, yz)
पहले उदाहरण में '.take (2) 'जैसा लगता है यह इटरेटर की एक प्रति बनाता है। – ziggystar