chenquan / stream

流处理API,你可以像Java Stream一样使用它

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Steam

流处理API,你可以像Java Stream一样使用它

Godoc Go Report Card codecov GitHub GitHub stars

GRATITUDE

API的部分实现参考go-zero中模块fx

INSTALLATION

go get -u github.com/chenquan/stream

EXAMPLE

1.创建流

// 创建一个空的流
Empty()
// 使用任意元素创建一个流
Of(1, "1", 22, "22")
// 从循环中创建一个流
From(func (source chan<- interface{}) {
for i := 0; i < 1000; i++ {
source <- i
}
})
// 根据通道创建一个流
ch := make(chan interface{}, 2)
Range(ch)

2.合并流

// 合并流
Concat(Empty(), Empty())
Concat(Empty(), Of(1, 2, 3))
Empty().Concat(Of(1, 2, 3))

3.遍历

// 遍历
Of(1, 2, 3, 4).Foreach(func (item interface{}) {
fmt.Println(item)
})
//倒序遍历
Of(1, 2, 3,4).ForeachOrdered(func (item interface{}) {
fmt.Println(item)
})

4.排序

// 遍历
Of(1, 4, 2, 3).Sort(func (a, b interface{}) bool {
return a.(int) < b.(int)
})
// 1,2,3,4

5.跳过

Of(1, 4, 2, 3).Skip(2)
// 2,3

6.限制条数

// 限制条数
Of(1, 4, 2, 3).Limit(2)
// 1,4

7.返回最后2条数

// 返回最后2条数
Of(1, 4, 2, 3, 1).Tail(2)
// 3,1

更多使用方式请参考:stream_test.go

LICENSE

FOSSA Status

About

流处理API,你可以像Java Stream一样使用它

License:Apache License 2.0


Languages

Language:Go 100.0%