https://github.com/solarisneko/go-sugar
go common utils
https://github.com/solarisneko/go-sugar
common-utils go stream
Last synced: over 1 year ago
JSON representation
go common utils
- Host: GitHub
- URL: https://github.com/solarisneko/go-sugar
- Owner: SolarisNeko
- Created: 2023-06-27T18:00:29.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2023-06-28T15:27:43.000Z (almost 3 years ago)
- Last Synced: 2025-01-11T04:35:27.331Z (over 1 year ago)
- Topics: common-utils, go, stream
- Language: Go
- Homepage:
- Size: 7.81 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# go sugar
特性:
1. Java Stream -> Go Stream
2. Java 泛型 -> Go T
# Download
```shell
go get github.com/SolarisNeko/go-sugar
```
# Use
## Stream
```go
stream := Stream{1, 2, 3, 4, 5}
// 使用 Filter 过滤偶数
predicate := func(num T) bool {
if number, ok := num.(int); ok {
return number%2 == 0
}
return false
}
// 使用 Map 将每个元素加倍
mapper := func(n T) T {
toNumber := generic.ToNumber(n)
number := generic.ToNumber(2)
return toNumber * number
}
reducer := func(n1 T, n2 T) T {
return generic.ToNumber(n1) + generic.ToNumber(n2)
}
// 输出: 12
sum := stream.
Filter(predicate).
Map(mapper).
Reduce(0, reducer)
```