Qu'est-ce que la méthode next dans les itérateurs et comment est-elle implémentée?
sobes.tech IA
Réponse de l'IA
La méthode next dans les itérateurs est responsable de récupérer l'élément suivant de la séquence. Elle retourne généralement l'élément actuel et déplace le pointeur interne vers le suivant. S'il n'y a plus d'éléments, la méthode doit signaler la fin de l'itération (par exemple, en lançant une exception StopIteration en Python ou en retournant une valeur spéciale).
En Go, les itérateurs ne sont pas aussi explicitement implémentés qu'en Python, mais on peut créer une structure avec une méthode Next() bool pour passer à l'élément suivant et une méthode Value() T pour obtenir la valeur courante.
Exemple en 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())
}
}
Ici, Next avance la position et retourne true s'il y a un élément suivant, et Value retourne l'élément actuel.