Sobes.tech
Middle

იტერატორებში next მეთოდი რა არის და როგორ ხორციელდება?

sobes.tech AI

პასუხი AI-სგან

Iterator-ларда next методу келесі элементті алу үшін жауап береді. Ол әдетте ағымдағы элементті қайтарады және ішкі көрсеткішті келесіге жылжытады. Егер элементтер аяқталса, әдіс итерацияның аяқталғанын сигналдауы керек (мысалы, Python-да StopIteration қателігін лақтыру немесе арнайы мәнді қайтару).

Go-да итераторлар Python-дағыдай анық емес, бірақ Next() bool әдісімен құрылым құрып, Value() T әдісімен ағымдағы мәнді алуға болады.

Мысал 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())
    }
}

Мұнда, Next позицияны жылжытады және егер келесі элемент бар болса, true қайтарады, ал Value ағымдағы элементті қайтарады.