¿Cómo saben los generadores cuyo elemento es opcional cuando han llegado al final?

El velozGeneratorType referencia dice sobre elnext método:

next() Avance al siguiente elemento y devuélvalo, o nulo si no existe el siguiente elemento.

Y luego en la discusión, dice

Requiere:next() no se ha aplicado a una copia deself desde que se realizó la copia, y no hay llamadas anteriores aself.next() ha regresadonil. Se alienta a las implementaciones específicas de este protocolo a responder a las violaciones de este requisito llamandopreconditionFailure("...").

Si el generador es para un tipo opcional, entonces es posible que alcance unnil valor antes de llegar al final de la secuencia. ¿Cómo sabe Swift que no ha llegado al final en este caso?

Respuestas a la pregunta(1)

Su respuesta a la pregunta