Me gustaría crear un Iterator
que obtiene su siguiente elemento al evaluar (repetidamente) una expresión, y quiero que la expresión pueda devolver un cierto valor para terminarla.¿Cómo crear un iterador finito cuyos contenidos son el resultado de una expresión?
Lo único que he encontrado es Iterator.continually(), que parece ser infinito. Es importante que la expresión no se evalúe hasta que se llame al next()
en el Iterator
.
¿Hay alguna manera de obtener este comportamiento?
por ejemplo:
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
¿qué debe devolver el iterador cuando ve el valor de detención? – sourcedelica
no debería devolver más elementos. –