Iterator[T] 上的 Scala 文档说明如下:
特别重要的是要注意,除非另有说明,否则在调用迭代器的方法后绝不应使用迭代器。两个最重要的例外也是唯一的抽象方法:
next
和hasNext
.
他们还给出了安全和不安全使用的具体示例:
def f[A](it: Iterator[A]) = {
if (it.hasNext) { // Safe to reuse "it" after "hasNext"
it.next // Safe to reuse "it" after "next"
val remainder = it.drop(2) // it is *not* safe to use "it" again after this line!
remainder.take(2) // it is *not* safe to use "remainder" after this line!
} else it
}
不幸的是,我在这里没有遵循不安全的想法。有人可以在这里为我阐明一下吗?