Middle
Iteratsiyalarda next usuli nima va qanday amalga oshiriladi?
sobes.tech AI
AIdan javob
Iteratorlarda next metodi ketma-ketlikdagi keyingi elementni olish uchun javobgardir. U odatda hozirgi elementni qaytaradi va ichki ko'rsatkichni keyingisiga siljitadi. Agar elementlar tugagan bo'lsa, metod iteratsiyaning tugashini signal qilishi kerak (masalan, Python'da StopIteration xatosini chiqarish yoki maxsus qiymatni qaytarish).
Go tilida iteratorlar Python'dagidek aniq emas, lekin Next() bool metod bilan struktura yaratish va Value() T metod bilan hozirgi qiymatni olish mumkin.
Go misoli:
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())
}
}
Bu yerda, Next pozitsiyani siljitadi va true qaytaradi, agar keyingi element mavjud bo'lsa, Value esa hozirgi elementni qaytaradi.