Go循环太多?用这个Skill换种写法

用 samber/lo 库进行函数式数据转换。

写 Go 代码时,切片过滤、分组、转换这些活儿很容易变成一串循环。golang-samber-lo 这个 Skill 会帮你判断:哪些地方适合用 samber/lo 写得更清楚,哪些地方其实用标准库就够了。

比如,你要从订单里挑出已付款的,再把金额加起来。可以让它用 `Filter` 和 `Reduce` 组合处理;但如果只是检查某个值在不在切片里,文档建议直接用 Go 自带的 `slices.Contains`。它的原则不是“看见循环就改”,而是先看这个任务值不值得引入库。

`lo` 默认会返回一个新集合,代码更容易看懂。只有测出来内存分配确实成了问题,再考虑可变版本 `lom`;需要处理 CPU 密集型大数据时,才讨论并行版本 `lop` 或惰性迭代器 `loi`。注意,`lop` 不是拿来并发请求网络接口的。

如果你正在整理 Go 里的数据转换,可以把 Go 版本、数据规模和已有的性能数据一起交给这个 Skill。它会帮你在标准库、`lo` 和其他版本之间做选择,而不是把项目改成一套固定写法。

分类:编程开发

来源仓库:samber/cc-skills-golang

适合用来做什么

  • 用 samber/lo 过滤 Golang 切片中的偶数。
  • 使用 samber/lo 对字符串切片进行去重操作。

安装 golang-samber-lo

npx skills add https://www.iskills.cc/skills/samber/cc-skills-golang/golang-samber-lo/SKILL.md

在本机终端执行安装命令。安装前请阅读原始说明,确认所需工具、账号和权限。

查看安装步骤 · 查看常见问题

查看 golang-samber-lo 的用途与原始说明

浏览全部 Skill 指南