Giter Club home page Giter Club logo

stream's Introduction

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

get

go get github.com/yale8848/[email protected]

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

stream's People

Contributors

yale8848 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

linuxea

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.