Go

Go 没有 map / filter / reduce

从 JS 过来,第一反应是找 arr.map(...).filter(...)。Go 标准库没有这种链式写法,惯用法就是 for range。

slices 包里有几个近亲:

go
evens := slices.DeleteFunc(slices.Clone(nums), func(n int) bool { return n%2 != 0 })
// 反过来的 filter:删掉满足条件的(注意它会改原切片,所以先 Clone)

flat := slices.Concat([]int{1}, []int{2, 3})   // 一层 flatten
biggest := slices.Max(nums)

Go 1.23 加了迭代器 iter.Seq,社区也讨论过官方的 Map / Filter / Reduce,但目前没有进标准库。

esc