说我们有这个:
func foo() func() int {
return func() {
for i := range [0..10] {
return i
}
}
}
func main() {
for i := foo() {
}
}
Run Code Online (Sandbox Code Playgroud)
我可以在不知道循环多少次的情况下在 for 循环中迭代返回的函数吗?
例如,
package main
import "fmt"
func foo(n int) func() (int, bool) {
i := -1
return func() (int, bool) {
if i >= n {
return 0, true
}
i++
return i, false
}
}
func main() {
f := foo(5)
for i, eof := f(); !eof; i, eof = f() {
fmt.Println(i)
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
0
1
2
3
4
5
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5753 次 |
| 最近记录: |