ในภาษารุ่นใหม่ มักจะมีคุณสมบัติในการสร้าง Iterator Function หรือในบางภาษาจะเรียกว่า Generator เพื่อใช้สำหรับการเข้าถึงข้อมูลเป็นชุดด้วยการวนลูปและประมวลผล ใน Golang ก็สามารถสร้าง Iterator Function ได้ แต่ต้องมีการใช้ Channel มาช่วยในการผลิต Iterator โดยผมได้เขียน code ตัวอย่างไว้ สำหรับผู้ที่สนใจดังนี้ครับ
File : test.go
package main
import (
"fmt"
)
func it(n int) <- chan int {
ch := make(chan int)
go func() {
for i:=0; i<n; i++ {
ch <- i
}
close(ch)
}()
return ch
}
func main() {
for v := range it(10) {
fmt.Printf("%d\n", v)
}
}