Middle
Чӣ тавр методи next дар итераторҳо кор мекунад ва чӣ гуна татбиқ мешавад?
sobes.tech AI
Ҷавоб аз AI
Метод next дар итераторҳо масъул аст барои гирифтани унсури ояндаи пайдарпайӣ. Он одатан унсури ҳозираро бармегардонад ва нишондиҳандаи дохилиро ба унсури оянда мегузаронад. Агар дигар унсурҳо набошанд, метод бояд анҷоми итератсияро ишора кунад (масалан, бо партофтани истиснои StopIteration дар Python ё баргардонидани арзиши махсус).
Дар 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 унсури ҳозираро бармегардонад.