什么是从函数调用迭代结果的最佳/标准方法,它返回元组(result, err)
。
示例:
func getSlice() ([]string, error) {
return []string{"a", "b", "c"}, nil
}
for _, letter := range getSlice() {} //how should it be done here?
这是一件好事吗?
答案 0 :(得分:2)
如果函数也返回错误,则应始终首先检查该错误,并且只有在返回的错误允许的情况下才会继续使用其他结果(通常如果它等于nil
)。< / p>
所以这样做:
s, err := getSlice()
if err != nil {
// Handle error and optionally return
log.Printf("getSlice error: %v", err)
return
}
for _, letter := range s {
// Use letter
}
如果您在发生错误时不需要返回,并且您只需要使用一次结果,您也可以这样做:
if s, err := getSlice(); err == nil {
for _, letter := range s {
// Use letter
}
} else {
log.Printf("getSlice error: %v", err)
}