Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nikgalushko/fx
Fx is a useful functional programming helpers.
https://github.com/nikgalushko/fx
generics go golang helper tool
Last synced: 3 months ago
JSON representation
Fx is a useful functional programming helpers.
- Host: GitHub
- URL: https://github.com/nikgalushko/fx
- Owner: nikgalushko
- License: mit
- Created: 2021-09-02T17:37:32.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2022-01-09T15:18:11.000Z (almost 3 years ago)
- Last Synced: 2024-06-20T12:46:48.098Z (5 months ago)
- Topics: generics, go, golang, helper, tool
- Language: Go
- Homepage: https://nikgalushko.github.io/fx/
- Size: 42 KB
- Stars: 77
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# fx
[![Status](https://github.com/nikgalushko/fx/actions/workflows/go.yaml/badge.svg)](https://github.com/nikgalushko/fx/actions/workflows/go.yaml) [![Coverage Status](https://coveralls.io/repos/github/nikgalushko/fx/badge.svg?branch=main)](https://coveralls.io/github/nikgalushko/fx?branch=main)Fx is a useful functional programming helpers without using `interface{}` or reflect.
Support **only** Go 1.18+.
## Features
- Slice
- Each
- Collect
- Reduce
- Find
- Filter
- Every
- Some
- Contains
- Max
- Min
- GroupBy
- Sample
- SampleN
- Union
- Intersection
- Uniq
- IndexOf
- LastIndexOf
- Reverse
- Map
- Keys
- Values
- Each
- Filter
- Channel
- Merge## Documentation
Documentation with examples can be found here: https://nikgalushko.github.io/fx/
## Installation
slice helpers `go get github.com/nikgalushko/fx/slice`
map helpers `go get github.com/nikgalushko/fx/kv`
channel helpers `go get github.com/nikgalushko/fx/ch`
## Usage
```go
import (
"fmt""github.com/nikgalushko/fx/kv"
"github.com/nikgalushko/fx/slice"
)type (
ID stringAttribute struct {
Value string
}
)func main() {
m := map[ID]Attribute{
ID("1"): {Value: "blah"},
ID("1861"): {Value: "!"},
ID("1234"): {Value: "yeah"},
}fmt.Println("ids", kv.Keys(m), "contains special", slice.Contains(kv.Values(m), Attribute{Value: "!"}))
}
```