Go 里该不该用 Map/Filter/Reduce:从 lo、slices 到迭代器
Go 进入泛型时代后,集合处理基本分成两派:
- 函数式风格:用
samber/lo(或类似库)把集合操作写成Map/Filter/Reduce。 - 循环派:继续用
for,把分配、错误处理、提前退出都放在一眼能看全的循环里。
从 Go 1.21 起,标准库通过 slices / maps 新增了一批工具函数;但 Map/Filter/Reduce 仍然不在其中。原因不在于做不出来,而是 Go 更看重三点:读起来直观、性能开销可见、错误处理显式。