Was ist die Methode next bei Iteratoren und wie wird sie implementiert?
sobes.tech KI
Antwort von AI
Die Methode next in Iteratoren ist dafür verantwortlich, das nächste Element der Sequenz zu erhalten. Sie gibt in der Regel das aktuelle Element zurück und verschiebt den internen Zeiger auf das nächste. Wenn keine Elemente mehr vorhanden sind, sollte die Methode das Ende der Iteration signalisieren (z.B. durch Auslösen einer StopIteration-Ausnahme in Python oder Rückgabe eines speziellen Werts).
In Go sind Iteratoren nicht so explizit implementiert wie in Python, aber man kann eine Struktur mit einer Methode Next() bool erstellen, um zum nächsten Element zu wechseln, und einer Methode Value() T, um den aktuellen Wert zu erhalten.
Beispiel in Go:
package main
import "fmt"
type IntIterator struct {
data []int
pos int
}
func (it *IntIterator) Next() bool {
if it.pos < len(it.data) {
it.pos++
return true
}
return false
}
func (it *IntIterator) Value() int {
return it.data[it.pos-1]
}
func main() {
it := IntIterator{data: []int{10, 20, 30}}
for it.Next() {
fmt.Println(it.Value())
}
}
Hier verschiebt Next die Position und gibt true zurück, wenn ein nächstes Element vorhanden ist, und Value gibt das aktuelle Element zurück.