【发布时间】:2012-01-08 09:00:17
【问题描述】:
谁能解释为什么这些迭代器的行为不同?我通常希望字符串的行为类似于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)在第一个示例中复制了迭代器。