lo
samber/lo 是一个 go
里面类似 js 里的 lodash 的库,可以让我们很方便地对切片做一些诸如
filter、unique 等操作的库。
安装
1
| go get github.com/samber/lo@v1
|
最新版本支持
go1.18+,也就是可以使用泛型,这样就给开发者带来了更大的便利了。
示例
- Filter:过滤出符合条件的元素
1 2 3 4
| even := lo.Filter[int]([]int{1, 2, 3, 4}, func(x int, _ int) bool { return x%2 == 0 })
|
- Map:对每一个元素进行处理,返回新的切片
1 2 3 4
| lo.Map[int64, string]([]int64{1, 2, 3, 4}, func(x int64, _ int) string { return strconv.FormatInt(x, 10) })
|
- Uniq:去重
1 2
| uniqValues := lo.Uniq[int]([]int{1, 2, 2, 1})
|
- Chunk:分组
1 2
| lo.Chunk[int]([]int{0, 1, 2, 3, 4, 5}, 2)
|