A simple iterator supporter
package main
import (
"fmt"
"os"
"github.com/hymkor/go-iterator"
)
func NewSequence(start, end int) *iterator.Iterator[int] {
return iterator.New(func() (int, error) {
if start > end {
return -1, iterator.End
}
start++
return start - 1, nil
})
}
func main() {
seq := NewSequence(1, 10)
for seq.Next() {
fmt.Println(seq.Value)
}
if err := seq.Err(); err != nil {
fmt.Fprintln(os.Stderr, err.Error())
}
}
1
2
3
4
5
6
7
8
9
10