假设我正在实现这个函数来过滤Golang中的切片:
func Filter(filter func(n int) bool) func(list []int) []int {
return func(list []int) []int {
r := make([]int, 0)
for _, n := range list {
if filter(n) {
r = append(r, n)
}
}
return r
}
}
要这样使用:
list := []int{1, 4, 3, 2, 7, 4, 9, 7}
r := Filter(func(n int) bool { return n > 3 })(list)
fmt.Println(r)
这工作正常,但我有以下问题:
我是否应该使用完整的 func 语法而不是 lambda 样式表达式?
如果我希望筛选器筛选任何类型的切片,我应该使用哪种返回类型?
谢谢!
FFIVE
相关分类