写 Go 代码时,切片过滤、分组、转换这些活儿很容易变成一串循环。golang-samber-lo 这个 Skill 会帮你判断:哪些地方适合用 samber/lo 写得更清楚,哪些地方其实用标准库就够了。
比如,你要从订单里挑出已付款的,再把金额加起来。可以让它用 `Filter` 和 `Reduce` 组合处理;但如果只是检查某个值在不在切片里,文档建议直接用 Go 自带的 `slices.Contains`。它的原则不是“看见循环就改”,而是先看这个任务值不值得引入库。
`lo` 默认会返回一个新集合,代码更容易看懂。只有测出来内存分配确实成了问题,再考虑可变版本 `lom`;需要处理 CPU 密集型大数据时,才讨论并行版本 `lop` 或惰性迭代器 `loi`。注意,`lop` 不是拿来并发请求网络接口的。
如果你正在整理 Go 里的数据转换,可以把 Go 版本、数据规模和已有的性能数据一起交给这个 Skill。它会帮你在标准库、`lo` 和其他版本之间做选择,而不是把项目改成一套固定写法。