深入理解Go语言函数迭代器:从概念到实践
package main
import "fmt"
// 定义迭代器类型
type Iterator func() (int, bool)
// 创建一个函数迭代器
func NewIterator(start, end int) Iterator {
current := start
return func() (int, bool) {
if current >= end {
return 0, false
}
value := current
current++
return value, true
}
}
func main() {
// 创建一个迭代器,从0遍历到5
it := NewIterator(0, 6)
// 使用迭代器遍历元素
for {
value, ok := it()
if !ok {
break
}
fmt.Println(value)
}
}