Sobes.tech
Middle

Wat is de methode next in iterators en hoe wordt deze geïmplementeerd?

sobes.tech AI

Antwoord van AI

De next-methode in iterators is verantwoordelijk voor het verkrijgen van het volgende element in de sequentie. Het retourneert meestal het huidige element en verschuift de interne aanwijzer naar het volgende. Als er geen elementen meer zijn, moet de methode het einde van de iteratie signaleren (bijvoorbeeld door een StopIteration-uitzondering te werpen in Python of door een speciaal waarde terug te geven).

In Go worden iterators niet zo expliciet geïmplementeerd als in Python, maar je kunt een structuur maken met een methode Next() bool om naar het volgende element te gaan en een methode Value() T om de huidige waarde te krijgen.

Voorbeeld 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 verschuift Next de positie en geeft true terug als er een volgend element is, en Value geeft het huidige element terug.