Как Генераторы, Элемент которых является Необязательным, знают, когда они достигли конца?

СвифтGeneratorType ссылка говорит оnext метод:

next() Перейдите к следующему элементу и верните его, либо nil, если следующего элемента не существует.

А потом в обсуждении говорится

Требуется:next() не был применен к копииself так как копия была сделана, и нет предыдущего вызоваself.next() вернулсяnil, Конкретные реализации этого протокола рекомендуется реагировать на нарушения этого требования, вызываяpreconditionFailure("...").

Если Генератор предназначен для Необязательного типа, он может достичьnil значение до достижения конца последовательности. Откуда Свифт знает, что в этом случае он еще не достиг конца?

Ответы на вопрос(1)

Ваш ответ на вопрос