通过函数范围



我有20多个函数返回结构体或nil。我需要遍历它们如果它们返回一个结构体,我就把它附加到结构体的切片中。所以我想知道是否有一种方法来迭代所有的函数和附加结果,如果它不是nil,因为检查每个函数的结果似乎是浪费时间。有谁能提出一个方法吗?或许可以举个例子。

我知道你已经在评论中得到了答案,但我还是想放一个例子:

funcs := []func()*struct{Thing int}{
func()*struct{Thing int}{return nil},
func()*struct{Thing int}{
newStruct := struct{Thing int}{Thing: 1}
return &newStruct
},
}
sliceOfStructs := []struct{Thing int}{}
for _,f := range funcs {
res := f()
if res != nil {
sliceOfStructs = append(sliceOfStructs, *res)
}
}

最新更新