Golang 几个不错的实用函数库

文章目录

大咖好呀,我是恋喵大鲤鱼。

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 的启发。

具有如下特点:

👏 全面、高效、可重用。

💪 600+ go util 函数,支持 string、slice、datetime、net、crypt...

💅 仅依赖两种库:go 标准库和 golang.org/x。

🌍 每个导出函数均有单元测试。

elliotchance/pie

stars 1.8k。

pie 是一个实用函数库,用于对切片和映射进行常见操作。

gookit/goutil

stars 1.7k。

goutil 包含 Go 常用的一些工具函数:数字,字符串,数组,Map,结构体,反射,文本,文件,错误,时间日期,特殊处理,格式化,常用信息获取等等。

dablelv/cyan

stars 0.2k。

cyan 是我自己主导开发的 Go 实用函数库,将项目开发过程中遇到的常用函数记录下来,方便复用,欢迎大家使用共建。

具有如下特点:

  • 全面、高效、可重复使用。
  • 包含众多实用函数,支持字符串、切片、映射、日期时间、加密...
  • 只依赖 Go 标准库和 golang.org/x。
  • 导出函数的单元测试覆盖率高。

关于名称 cyan,取自我母亲名字中的"青"字。

相关推荐
mumu_wangwei13 小时前
【QFS】Golang自研的QFS分布式文件系统,QFS文件系统使用
开发语言·后端·golang
codeejun16 小时前
每日一Go-66、K8s 蓝绿发布 & 金丝雀发布实战:Service 切流量 + Ingress 灰度一次讲透
开发语言·golang·kubernetes
青春喂了后端17 小时前
Go Sidecar Repository 并发锁改造:让并发请求安全地进入 Git 仓库层
git·安全·golang
2501_9318037517 小时前
Go 接口学习笔记:从语法到心法
笔记·学习·golang
pixcarp17 小时前
Redis ZSet:底层设计与实践
数据库·redis·后端·学习·golang·web
极客小云19 小时前
【用 Go 写一个统一的 LLM Token 统计库:tokencalc 的设计与实现】
开发语言·后端·golang
Vect__19 小时前
C++转go的之路:变量声明、iota、函数、切片、init、defer
开发语言·后端·golang
比特森林探险记1 天前
go 语言中的context 解读和用法
开发语言·后端·golang
jieyucx2 天前
从基础语法到面向对象:Go语言如何实现封装、继承与多态?
开发语言·后端·golang
littleschemer2 天前
Go:实现游戏服务器网关
服务器·网关·游戏·golang