Documentation
¶
Overview ¶
transformers provide utilities to modify iterators
Index ¶
- func Filter[K any, V any](iterator iter.Seq2[K, V], predicate func(K, V) bool) iter.Seq2[K, V]
- func Keys[K any, V any](iterator iter.Seq2[K, V]) iter.Seq[K]
- func Map[IK any, IV any, OK any, OV any](iterator iter.Seq2[IK, IV], mapper func(k IK, v IV) (OK, OV)) iter.Seq2[OK, OV]
- func Merge[K any, V any](iterators ...iter.Seq2[K, V]) iter.Seq2[K, V]
- func Values[K any, V any](iterator iter.Seq2[K, V]) iter.Seq[V]
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Filter ¶
Filter allows to filter values of an interator specifying a predicate that gets
Example ¶
package main
import (
"fmt"
"slices"
"github.com/4strodev/iterago/builders"
"github.com/4strodev/iterago/transformers"
)
func main() {
iterator := transformers.Filter(builders.Range(0, 10, 1), func(k int, v int) bool {
return v%2 == 0
})
items := slices.Collect(transformers.Values(iterator))
fmt.Println(items)
}
Output: [0 2 4 6 8]
func Map ¶
func Map[IK any, IV any, OK any, OV any](iterator iter.Seq2[IK, IV], mapper func(k IK, v IV) (OK, OV)) iter.Seq2[OK, OV]
Map allows you to convert an iterator iter.Seq2 into another iterator with mapped keys and values
Example ¶
package main
import (
"fmt"
"slices"
"github.com/4strodev/iterago/builders"
"github.com/4strodev/iterago/transformers"
)
func main() {
iterator := transformers.Map(builders.Range(0, 10, 1), func(index int, value int) (string, int) {
return fmt.Sprintf("\"%d\"", index), value * 2
})
values := transformers.Values(iterator)
valueItems := slices.Collect(values)
keys := transformers.Keys(iterator)
keyItems := slices.Collect(keys)
fmt.Println(valueItems)
fmt.Println(keyItems)
}
Output: [0 2 4 6 8 10 12 14 16 18] ["0" "1" "2" "3" "4" "5" "6" "7" "8" "9"]
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.