delve/_fixtures/backwardsiter.go

25 lines
354 B
Go
Raw Normal View History

package main
import (
"fmt"
"iter"
)
func backwards(s []int) func(func(int) bool) {
return func(yield func(int) bool) {
for i := len(s) - 1; i >= 0; i-- {
if !yield(s[i]) {
break
}
}
}
}
func main() {
next, stop := iter.Pull(backwards([]int{10, 20, 30, 40}))
fmt.Println(next())
fmt.Println(next())
fmt.Println(next())
stop()
}