Iter
Iterator and utilities.
Some inspiration from ReactiveX.
Examples
Iterating
Iterate over an iterator
package main
import (
"fmt"
"github.com/EliCDavis/iter"
)
func main() {
arr := iter.Array([]int{1, 2, 3, 4, 5})
sum := 0
for {
val, err := arr.Next()
if err != nil {
break
}
sum += val
}
// Prints: 15
fmt.Println(sum)
}
Mapping
Map an iterator of one type to an iterator of a different type.
package main
import (
"fmt"
"strconv"
"github.com/EliCDavis/iter"
"github.com/EliCDavis/iter/iterops"
)
func main() {
arr := iter.Array([]string{"1", "2", "3", "4", "5"})
mapper := iterops.Map[string, int](&arr, func(s string) int {
parsed, err := strconv.Atoi(s)
if err != nil {
panic(err)
}
return parsed
})
// Prints: [1 2 3 4 5]
fmt.Println(iter.ReadFull(mapper))
}