range迭代器实现
闭包迭代器
func SliceIterator(s []string) func() (string, bool) {
i := 0
return func() (string, bool) {
if i < len(s) {
val := s[i]
i++
return val, true
}
return "", false
}
}
func main() {
iters := SliceIterator([]string{"hello", "me", "too"})
for {
if v, ok := iters(); !ok {
break
} else {
fmt.Println(v)
}
}
}结构体迭代器
通道迭代器
最后更新于
