Middle
Mis on meetod next iteratorites ja kuidas see rakendatakse?
sobes.tech AI
Vastus AI-lt
Iteraatorite next meetod vastutab järgneva elemendi saamise eest järjestusest. Tavaliselt tagastab see praeguse elemendi ja liigutab sisemise näitaja järgmisele. Kui elemente enam ei ole, peab meetod märkima iteratsiooni lõppu (näiteks Pythonis visates erandi StopIteration või tagastades spetsiaalse väärtuse).
Go keeles ei ole iteraatoreid nii selgelt implementeeritud nagu Pythonis, kuid saab luua struktuuri meetodiga Next() bool, mis liigub järgmise elemendi juurde, ja meetodiga Value() T, mis tagastab praeguse väärtuse.
Näide Go keeles:
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())
}
}
Siin, Next liigub positsiooni ja tagastab true, kui on järgmine element, ning Value tagastab praeguse elemendi.