An open API service indexing awesome lists of open source software.

https://github.com/chenhg5/collection

make golang map and slice powerful
https://github.com/chenhg5/collection

Last synced: about 2 months ago
JSON representation

make golang map and slice powerful

Awesome Lists containing this project

README

        

# Go Collection

golang
GoDoc
license
[![Build Status](https://api.travis-ci.org/chenhg5/collection.svg?branch=master)](https://api.travis-ci.org/chenhg5/collection)

Collection provides a fluent, convenient wrapper for working with arrays of data.

You can easily convert a map or an array into a Collection with the method ```Collect()```.
And then you can use the powerful and graceful apis of Collection to process the data.

In general, Collection are immutable, meaning every Collection method returns an entirely new Collection instance

## doc

[here](https://godoc.org/github.com/chenhg5/collection#Collection)

## example

```golang
a := []int{2,3,4,5,6,7}

Collect(a).Each(func(item, value interface{}) (interface{}, bool) {
return value.(decimal.Decimal).IntPart() + 2, false
}).ToIntArray()

// []int{4,5,6,7,8,9}

b := []map[string]interface{}{
{"name": "Jack", "sex": 0},
{"name": "Mary", "sex": 1},
{"name": "Jane", "sex": 1},
}

Collect(b).Where("name", "Jack").ToMapArray()[0]

// map[string]interface{}{"name": "Jack", "sex": 0}

```

[more examples](https://godoc.org/github.com/chenhg5/collection#pkg-examples)

## contribution

pr is very welcome.