用法 一
trait Iterator[+A] extends IterableOnce[A] with IterableOnceOps[A, Iterator, Iterator[A]]
迭代器是允許迭代一係列元素的數據結構。他們有一個 hasNext
方法來檢查是否有下一個元素可用,以及一個 next
方法返回下一個元素並推進迭代器。
迭代器是可變的:對它的大多數操作都會改變它的狀態。雖然它通常用於遍曆集合的元素,但它也可以在沒有任何集合支持的情況下使用(參見伴隨對象的構造函數)。
特別重要的是要注意,除非另有說明,調用方法後永遠不應該使用迭代器.兩個最重要的例外也是唯一的抽象方法:next
和hasNext
.
這兩種方法都可以被調用任意次數,而不必丟棄迭代器。請注意,即使 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
}
伴生:
- object
源碼:
- Iterator.scala
@SerialVersionUID (3L)
用法 二
object Iterator extends IterableFactory[Iterator]
伴生:
- class
源碼:
- Iterator.scala
相關用法
- Scala collection.IterableOnce用法及代碼示例
- Scala collection.JavaConverters用法及代碼示例
- Scala control.Breaks用法及代碼示例
- Scala compiletime.summonFrom用法及代碼示例
- Scala control.Exception用法及代碼示例
- Scala compiletime.error用法及代碼示例
- Scala compiletime.erasedValue用法及代碼示例
- Scala compiletime.codeOf用法及代碼示例
- Scala compiletime.uninitialized用法及代碼示例
- Scala control.NonFatal用法及代碼示例
- Scala convert.ImplicitConversions用法及代碼示例
- Scala concurrent.Future用法及代碼示例
- Scala control.ControlThrowable用法及代碼示例
- Scala concurrent.BlockContext用法及代碼示例
- Scala control.TailCalls用法及代碼示例
- Scala compiletime.requireConst用法及代碼示例
- Scala Tabulate.sliding用法及代碼示例
- Scala ArrayBuffer.inits用法及代碼示例
- Scala long.BitwiseOr用法及代碼示例
- Scala StringBuilder.partitionMap用法及代碼示例
- Scala List distinct()用法及代碼示例
- Scala DefaultMap.sizeIs用法及代碼示例
- Scala StrictOptimizedIterableOps.sliding用法及代碼示例
- Scala Searching.SearchResult用法及代碼示例
- Scala ::.collectFirst用法及代碼示例
注:本文由純淨天空篩選整理自scala-lang.org大神的英文原創作品 collection.Iterator。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。