Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Golang stream lib is like Java 8 stream. Only handle slice or array.

get

go get github.com/yale8848/stream@v1.3.1

demo

   var data =[]person{{age:11,name:"alice"},{age:19,name:"pig"},{age:5,name:"cat"},{age:21,name:"bob"}}
   
   st,_:=stream.Of(data)
   st.Filter(func(v stream.T) bool {
   		p:=v.(person)
   		fmt.Printf("Filter %v\r\n",v)
   		return  p.age>10
   	}).Peek(func(v stream.T) {
   		fmt.Printf("Peek %v\r\n",v)
   	}).Skip(1).Map(func(v stream.T) stream.T {
   		p:=v.(person)
   		p.name = strings.ToUpper(p.name)
   		return p
   	}).Sorted(func(v1, v2 stream.T) bool {
   		s1:=v1.(person)
   		s2:=v2.(person)
   		return  strings.Compare(s1.name,s2.name)<0
   	}).Limit(2).Distinct(func(v stream.T) stream.T {
   		p:=v.(person)
   		fmt.Printf("Distinct %v\r\n",v)
   		return p.name
   	}).ForEach(func(v stream.T) bool {
      		fmt.Printf("ForEach %v\r\n",v)
      		return true
      	})

Todo

Intermediate

  • Filter

  • Map

  • Peek

  • Sorted

  • Distinct

  • Skip

  • Limit

  • unordered

  • parallel

  • sequential

Terminal

  • ForEach
  • ForEachOrdered
  • toArray
  • Collect
  • Min
  • Max
  • Count
  • iterator
  • Sum

Short-circuiting

  • AnyMatch
  • AllMatch
  • NoneMatch
  • FindFirst
  • findAny

ref

http://www.cnblogs.com/CarpenterLee/p/6637118.html

About

Golang stream lib is like Java 8 stream. Only handle slice or array.

Topics

Resources

Packages

No packages published

Languages

You can’t perform that action at this time.