Я хотел бы создать Iterator
, который получает свой следующий элемент (неоднократно), оценивая выражение, и я хочу, чтобы выражение могло возвращать определенное значение для его завершения.
Единственное, что я нашел, это Iterator.continually(), который кажется бесконечным. Важно, чтобы выражение не оценивалось до тех пор, пока next()
не будет вызвано на Iterator
.
Есть ли способ получить это поведение?
например:
def getNext = {
// some complicated code
val next = ... // either a STOP value or a real value to be returned by the iterator
}
val myIter = Iterator.continually(getNext) // want this to stop at some point