EliCDavis / iter

iterator and utilities

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Iter

Coverage Go Report Card

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))
}

About

iterator and utilities

License:MIT License


Languages

Language:Go 100.0%