seq

package
v0.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 13, 2024 License: MIT Imports: 5 Imported by: 0

Documentation

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

func Chan

func Chan[E any](input chan E) iter.Seq[E]
Example
package main

import (
	"fmt"

	"gitee.com/xuender/flow/seq"
)

func main() {
	cha := make(chan int, 3)
	cha <- 1
	cha <- 2
	cha <- 3

	close(cha)

	for item := range seq.Chan(cha) {
		fmt.Println(item)
	}

}
Output:

1
2
3

func Count

func Count[E any](seq iter.Seq[E]) int
Example
package main

import (
	"fmt"

	"gitee.com/xuender/flow/seq"
)

func main() {
	fmt.Println(seq.Count(seq.Filter(seq.Range(6), func(num int) bool { return num%2 == 0 })))

}
Output:

3

func Each

func Each[E any](seq iter.Seq[E], yield func(E) bool)
Example
package main

import (
	"fmt"

	"gitee.com/xuender/flow/seq"
)

func main() {
	seq.Each(seq.Range(5), func(num int) bool {
		fmt.Println(num)

		return true
	})

}
Output:

0
1
2
3
4

func Emit

func Emit[E any](seq iter.Seq[E])
Example
package main

import (
	"fmt"

	"gitee.com/xuender/flow/seq"
)

func main() {
	seq.Emit(seq.Peek(seq.Range(3), func(num int) {
		fmt.Println(num)
	}))

}
Output:

0
1
2

func Filter

func Filter[E any](input iter.Seq[E], predicate func(E) bool) iter.Seq[E]
Example
package main

import (
	"fmt"

	"gitee.com/xuender/flow/seq"
)

func main() {
	fmt.Println(seq.Max(seq.Filter(seq.Range(6), func(i int) bool { return i%2 == 0 })))

}
Output:

4 true

func First

func First[E any](seq iter.Seq[E]) (E, bool)
Example
package main

import (
	"fmt"

	"gitee.com/xuender/flow/seq"
)

func main() {
	fmt.Println(seq.First(seq.Range(100)))

}
Output:

0 true

func FlatMap

func FlatMap[S ~[]E, E any](input iter.Seq[S]) iter.Seq[E]
Example
package main

import (
	"fmt"
	"slices"

	"gitee.com/xuender/flow/seq"
)

func main() {
	for num := range seq.FlatMap[[]int]((slices.Values([][]int{{1, 2}, {3, 4}}))) {
		fmt.Println(num)
	}

}
Output:

1
2
3
4

func Join

func Join[E any](seq iter.Seq[E], delimiter string) string
Example
package main

import (
	"fmt"

	"gitee.com/xuender/flow/seq"
)

func main() {
	fmt.Println(seq.Join(seq.Range(3), ","))

}
Output:

0,1,2

func Limit

func Limit[E any](input iter.Seq[E], limit int) iter.Seq[E]
Example
package main

import (
	"fmt"

	"gitee.com/xuender/flow/seq"
)

func main() {
	fmt.Println(seq.Join(seq.Limit(seq.Range(10), 3), ","))

}
Output:

0,1,2

func Map

func Map[I, O any](input iter.Seq[I], mapper func(I) O) iter.Seq[O]
Example
package main

import (
	"fmt"

	"gitee.com/xuender/flow/seq"
)

func main() {
	int2float64 := seq.Map(seq.Range(6), func(num int) float64 { return float64(num * 2) })

	fmt.Println(seq.Max(int2float64))

}
Output:

10 true

func Max

func Max[E cmp.Ordered](seq iter.Seq[E]) (E, bool)
Example
package main

import (
	"fmt"

	"gitee.com/xuender/flow/seq"
)

func main() {
	fmt.Println(seq.Max(seq.Filter(seq.Range(6), func(num int) bool { return num%2 == 0 })))

}
Output:

4 true

func Min

func Min[E cmp.Ordered](seq iter.Seq[E]) (E, bool)
Example
package main

import (
	"fmt"

	"gitee.com/xuender/flow/seq"
)

func main() {
	fmt.Println(seq.Min(seq.Skip[int](seq.Range(6), 3)))

}
Output:

3 true

func Peek

func Peek[E any](input iter.Seq[E], action func(E)) iter.Seq[E]
Example
package main

import (
	"fmt"

	"gitee.com/xuender/flow/seq"
)

func main() {
	seq.Emit(seq.Peek(seq.Range(3), func(num int) {
		fmt.Println(num)
	}))

}
Output:

0
1
2

func Range

func Range(size int) iter.Seq[int]

func Reverse

func Reverse[E any](input iter.Seq[E]) iter.Seq[E]
Example
package main

import (
	"fmt"

	"gitee.com/xuender/flow/seq"
)

func main() {
	for num := range seq.Reverse[int]((seq.Range(5))) {
		fmt.Println(num)
	}

}
Output:

4
3
2
1
0

func Skip

func Skip[E any](input iter.Seq[E], num int) iter.Seq[E]
Example
package main

import (
	"fmt"

	"gitee.com/xuender/flow/seq"
)

func main() {
	for num := range seq.Skip[int](seq.Range(10), 8) {
		fmt.Println(num)
	}

}
Output:

8
9

func Sort

func Sort[E cmp.Ordered](input iter.Seq[E]) iter.Seq[E]
Example
package main

import (
	"fmt"
	"slices"

	"gitee.com/xuender/flow/seq"
)

func main() {
	for num := range seq.Sort[int]((slices.Values([]int{3, 1, 2}))) {
		fmt.Println(num)
	}

}
Output:

1
2
3

func Sum

func Sum[E cmp.Ordered](seq iter.Seq[E]) E
Example
package main

import (
	"fmt"
	"slices"

	"gitee.com/xuender/flow/seq"
)

func main() {
	fmt.Println(seq.Sum(seq.Range(101)))
	fmt.Println(seq.Sum(slices.Values([]string{"a", "b", "c"})))

}
Output:

5050
abc

func Unique

func Unique[E comparable](input iter.Seq[E]) iter.Seq[E]
Example
package main

import (
	"fmt"
	"slices"

	"gitee.com/xuender/flow/seq"
)

func main() {
	for num := range seq.Unique[int]((slices.Values([]int{1, 2, 2, 3, 1}))) {
		fmt.Println(num)
	}

}
Output:

1
2
3

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL