Sobes.tech
Middle

Kas ir metode next iteratoros un kā tas tiek īstenots?

sobes.tech AI

Atbilde no AI

Iterētora next metode ir atbildīgs par nākamā elementa iegūšanu secībā. Parasti tas atgriež pašreizējo elementu un pārvieto iekšējo rādītāju uz nākamo. Ja elementu vairs nav, metode jānorāda iterācijas beigas (piemēram, izmetot izņēmumu StopIteration Pythonā vai atgriežot īpašu vērtību).

Go valodā iteratori nav tik skaidri īstenoti kā Pythonā, bet var izveidot struktūru ar metodi Next() bool, lai pārietu uz nākamo elementu, un Value() T, lai iegūtu pašreizējo vērtību.

Piemērs 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())
    }
}

Šeit, Next pārvieto pozīciju un atgriež true, ja ir nākamais elements, un Value atgriež pašreizējo elementu.