Bu yineleyiciler neden farklı davrandığını açıklayabilir mi? Genellikle bir String'in IndexedSeq[Char]
gibi davranmasını beklerim. Bu herhangi bir yerde belgelenmiş mi? bunun üzerine take
çağırmak sonraIterator'da beklenmeyen davranışı String
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)
İlk örnekte .take (2) 'gibi görünüyor yineleyicinin bir kopyasını oluşturur. – ziggystar