从 golang 发布的一开始,我总是面临着一些缺失的问题:
-
泛型
-
函数式编程
然后 golang v1.18 出来了generics。
这一下子解锁了很多用 golang 编写代码的新方法。
详细来说,现在可以轻松编写通用函数,帮助您以更实用的方式编写代码。
为此,我启动了一个开源项目,旨在填补该语言的剩余空白。
废除/fp-go
Fp-go 是由 Golang 1.18+ 泛型提供支持的函数式编程助手的集合。
fp-go[
](https://goreportcard.com/badge/github. com/repeale/fp-go)
Fp-go 是由 Golang1.18+generics提供支持的函数式编程助手的集合。
内容
-
安装
-
特点
*咖喱
*变化
- 帮手
*每
*过滤器
*平
*平面图
*地图
*减少
*一些
*撰写
*管道
*咖喱
安装
需要去 1.18+
去获取 github.com/repeale/fp-go
进入全屏模式 退出全屏模式
特点
-
咖喱
-
变化
咖喱
默认!数据最后!
func isPositive(x int) bool {
返回 x > 0
}
功能主要(){
filterPositive :u003d fp.Filter(isPositive)
数字 :u003d []int{1, 2, 3, 4, 5}
filterPositive(数字)
}
进入全屏模式 退出全屏模式
变化
Variations 允许您在回调函数中获取不同的参数,以便您只获取真正需要的参数。
默认
带索引
带切片
默认
只有当前项目可用:
fp.Map[int, string](func(x int){ ... })
进入全屏模式 退出全屏模式
带索引
当前元素和索引可用:
fp.MapWithIndex
...
进入全屏模式 退出全屏模式
在 GitHub 上查看
该项目已经处于良好状态,可以让您编写良好的功能代码。但它仍在开发中,我正在寻求帮助以扩大帮助者的集合。
在这里您可以找到Helpers的列表以及示例。
图书馆的几个核心支柱:
-
咖喱
-
变化
咖喱
默认情况下,数据总是最后。这允许编写可以仅在需要时使用实际数据运行的前期可重用代码。
// Example with Map helper
func int64toInt(x int64) string {
return strconv.FormatInt(x, 10)
}
// ...
data := []int64{1, 2, 3}
fp.Map(int64toInt)(data)
// => []string{"1", "2", "3", "4"}
进入全屏模式 退出全屏模式
变化
每个助手都有变化。这允许您为您的用例使用正确的实现,而无需处理未使用的代码。完整的文档可以在这里找到。
// Available variations
// Default
fp.Map[int, string](func(x int) { ... })
// *WithIndex
fp.MapWithIndex[int, string](func(x int, i int) { ... })
// *WithSlice
fp.MapWithSlice[int, string](func(x int, i int, xs: []int) { ... })
进入全屏模式 退出全屏模式
期待贡献者、反馈和更多新功能的到来,我真的希望你会喜欢使用这个包!