Sobes.tech
Middle

İteratorlarda next metodu nədir və necə həyata keçirilir?

sobes.tech Süni İntellekt

AI-dan cavab

Iteratorlarda next metodu ardıcılın növbəti elementini almaq üçün cavabdehdir. O, adətən, hazırkı elementi qaytarır və daxili göstəricini növbətiyə keçirir. Əgər artıq element yoxdursa, metod iterasiyanın sonunu bildirməlidir (məsələn, Python-da StopIteration istisnası atmaq və ya xüsusi dəyər qaytarmaq).

Go-da iteratorlər Python-dakı kimi açıq şəkildə tətbiq edilmir, lakin Next() bool metodu ilə struktur yarada və Value() T metodu ilə hazırkı dəyəri əldə edə bilərsiniz.

Go nümunəsi:

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())
    }
}

Burada, Next mövqeyi dəyişir və true qaytarırsa, növbəti element mövcuddur, Value isə hazırkı elementi qaytarır.