网站首页 > 文章精选 正文
大家好,又见面了,我是 GitHub 精选君!
今天要给大家推荐一个 GitHub 开源项目 samber/lo,该项目在 GitHub 有超过 9.5k Star,用一句话介绍该项目就是:“ A Lodash-style Go library based on Go 1.18+ Generics (map, filter, contains, find...)”,基于泛型实现新的基础数据结构操作,使得代码更简洁易懂。
对应的压力测试证实了,使用该项目的泛型实现是要比使用 reflect 的包实现性能要好的,同时对于使用项目中的代码来替代直接使用 for 循环的代码来说,也同样有性能上的提升,原理也很容易理解因为在执行上做了并行的优化。
我们来看一下以下的一个简单示例,计算数组中不重复出现的值:
import (
"github.com/samber/lo"
lop "github.com/samber/lo/parallel"
)
names := lo.Uniq[string]([]string{"Samuel", "John", "Samuel"})
// []string{"Samuel", "John"}
以上也可以直接使用 lo.Uniq([]string{...}) 的方式,因为编译器有默认的类型推导。
目前该项目对 slice、map 等实现了非常多的易用函数,对于开发者来说能够更便捷的编写代码。
不妨再多看几个例子:
1、使用 Filter 进行数组过滤
2、Reduce 操作
3、GroupBy 操作
以上代码是不是很简洁同时很容易理解?如果你使用 Go 开发,非常推荐你使用该工具库。更多项目详情请查看如下链接。
开源项目地址:https://github.com/samber/lo (文末可点击阅读原文)
开源项目作者:lo
以下是参与该项目的其他贡献人员列表:
关注我们,一起探索有意思的开源项目。
猜你喜欢
- 2025-07-08 详解 ES10 中 Object.fromEntries() 的缘起
- 2025-07-08 vue 开发规范(vue开发规范)
- 2025-07-08 我为LowCodeEngine低代码引擎写了个插件
- 2025-07-08 提升 Python 效率,尽在 Pydash —— 高效数据处理的终极工具包
- 2025-07-08 优维低代码:Provider 构件(优维是什么意思)
- 2025-07-08 能运行,不代表它是对的:5 个潜伏在正常功能下的 JavaScript 错误
- 2025-07-08 Map 会比 Lodash 更快吗?JS 数组性能优化终极跑分
- 最近发表
- 标签列表
-
- newcoder (56)
- 字符串的长度是指 (45)
- drawcontours()参数说明 (60)
- unsignedshortint (59)
- postman并发请求 (47)
- python列表删除 (50)
- 左程云什么水平 (56)
- 计算机网络的拓扑结构是指() (45)
- 编程题 (64)
- postgresql默认端口 (66)
- 数据库的概念模型独立于 (48)
- 产生系统死锁的原因可能是由于 (51)
- 数据库中只存放视图的 (62)
- 在vi中退出不保存的命令是 (53)
- 哪个命令可以将普通用户转换成超级用户 (49)
- noscript标签的作用 (48)
- 联合利华网申 (49)
- swagger和postman (46)
- 结构化程序设计主要强调 (53)
- 172.1 (57)
- apipostwebsocket (47)
- 唯品会后台 (61)
- 简历助手 (56)
- offshow (61)
- mysql数据库面试题 (57)