大咖好呀,我是恋喵大鲤鱼。
Golang 标准库是 Go 语言自带的一组核心功能库,功能全面,易于使用。
在 Golang 标准库的基础上,还可以进一步封装常用的功能函数。本文将介绍一些优秀的开源实用函数库,大家可参考使用。
samber/lo
stars 13.5k。
lo 是一个基于 Go 1.18+ 泛型的 Lodash 风格的 Go 库。
该项目最初是作为新泛型实施的实验而开始的。 它在某些方面可能看起来像 Lodash。 我曾经使用出色的“go-funk”包进行编码,但是“go-funk”使用反射,因此不是类型安全的。
正如预期的那样,基准测试表明泛型比基于“reflect”包的实现快得多。与纯 for 循环相比,基准测试也显示出类似的性能提升。
samber/lo 包含了非常多的方法,主要可以划分为以下几类:
- slice 辅助方法
- map 辅助方法
- tuples 辅助方法
- 多个集合之间计算辅助方法
- 搜索查询辅助方法
- 其他函数式编程辅助方法等
thoas/go-funk
stars 4.5k。
go-funk 是一个基于 Reflect 的现代 Go 库。
帮助程序依赖于反射实现泛型,请注意此代码仅在运行时有效,因此您必须拥有良好的测试套件。
这些帮助函数最初是作为学习反射写出来的。它在某些方面可能看起来像 lodash,但它会有自己的路线图。 lodash 是一个很棒的库,背后有很多工作,go-funk 中包含的所有功能都来自内部用例。
您还可以在 godoc 中找到类型安全的实现。
注意,Go 1.18 引入泛型,建议使用泛型而不是反射实现代码复用。
duke-git/lancet
stars 3k。
lancet 是 Go 的一个全面、高效、可复用的实用函数库。 受到 java apache common 包和 lodash.js 的启发。
具有如下特点:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)