通过功能范围
Range through functions
我有 20 多个 return 结构或 nil 的函数。我需要遍历所有这些,如果它们 return 一个结构,我将它附加到一片结构中。所以我想知道是否有一种方法可以遍历所有函数并在结果不为 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)
}
}
我有 20 多个 return 结构或 nil 的函数。我需要遍历所有这些,如果它们 return 一个结构,我将它附加到一片结构中。所以我想知道是否有一种方法可以遍历所有函数并在结果不为 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)
}
}