Wie wissen Generatoren, deren Element optional ist, wann sie das Ende erreicht haben?

The Swift GeneratorType Referenz sagt über dienext Methode

next() Fahren Sie mit dem nächsten Element fort und geben Sie es zurück, oder nil, wenn kein nächstes Element vorhanden ist.

Und dann in der Diskussion, heißt es

Erfordert:next() wurde nicht auf eine Kopie von @ angewendself seit die Kopie erstellt wurde und kein vorheriger Aufruf vonself.next() ist zurückgekommennil. Bestimmte Implementierungen dieses Protokolls werden aufgefordert, auf Verstöße gegen diese Anforderung zu reagieren, indem Sie @ anrufepreconditionFailure("...").

Wenn der Generator ein optionaler Typ ist, kann er ein @ erreichenil Wert vor dem Ende der Sequenz. Woher weiß Swift, dass es in diesem Fall noch nicht zu Ende ist?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage