seq — 从左到右读懂数据流

基于标准库 iter.Seq / iter.Seq2 构建的惰性、可链式集合管道,借助 Go 1.27 的泛型方法(golang/go#77273)实现可改变元素类型的链式调用。

Seq[T]iter.Seq[T] 的 defined type,零成本互转,可直接喂给 slices.Collectmaps.Keys。零第三方依赖。

Go 1.27零依赖 惰性求值120+ 操作
import "github.com/smallnest/seq"

seq.From([]int{1, 2, 3, 4}).
    Filter(func(n int) bool { return n%2 == 0 }).
    Map(strconv.Itoa).
    Collect() // ["2" "4"]

seq 源码 doc 生成 · 设计遵循"划分铁律":受约束的操作(comparable/Ordered/Numeric)为自由函数或子类型方法,而非 Seq[T] 方法。

仓库:github.com/smallnest/seq