我是Go的新手,为了练习,我在Exclusm上做了一些编码练习。我在一个特定的练习中皖磕绊绊,在这个练习中,我很难解开解决方案。代码如下:
// Ints defines a collection of int values
type Ints []int
// Lists defines a collection of arrays of ints
type Lists [][]int
// Strings defines a collection of strings
type Strings []string
// Keep filters a collection of ints to only contain the members where the provided function returns true.
func (i Ints) Keep(strainer func(int) bool) (o Ints) {
for _, v := range i {
if strainer(v) {
o = append(o, v)
}
}
return
}
// Discard filters a collection to only contain the members where the provided function returns false.
func (i Ints) Discard(strainer func(int) bool) Ints {
return i.Keep(func(n int) bool { return !strainer(n) })
}
我的问题来自丢弃方法,我不明白大括号中的第二个返回语句,因为Keep函数应该返回Ints类型的值,而不是布尔语句,除非我错过了什么,如果有人可以为我分解 Discard 函数,那将是有帮助的。谢谢
HUX布斯
相关分类