Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Go 如果我没有';不需要错误处理吗?_Go - Fatal编程技术网

Go 如果我没有';不需要错误处理吗?

Go 如果我没有';不需要错误处理吗?,go,Go,以下是我想要实现的目标 fmt.Println(string(ioutil.ReadAll(res.Body))) 但这会引发以下错误 multiple-value ioutil.ReadAll() in single-value context 我知道ioutil.ReadAll()返回字节和错误。但我不想再多写一行,如下所示 bytes, _ := ioutil.ReadAll(resp.Body) 如果不关心Go中的错误处理,是否可以将ioutil.ReadAll()的结果传递给fm

以下是我想要实现的目标

fmt.Println(string(ioutil.ReadAll(res.Body)))
但这会引发以下错误

multiple-value ioutil.ReadAll() in single-value context
我知道ioutil.ReadAll()返回字节和错误。但我不想再多写一行,如下所示

bytes, _ := ioutil.ReadAll(resp.Body)

如果不关心Go中的错误处理,是否可以将ioutil.ReadAll()的结果传递给fmt.Println()。但是,如果这是一种常见情况,并且您觉得它大大提高了代码的可读性,请尝试以下方法:

// perhaps, there's a better name for this
func resultToString(b []byte, _ error) string { 
    return string(b)
}

// and later:
fmt.Println(resultToString(ioutil.ReadAll(res.Body)))

不幸的是,这是一个特定于字符串的函数,因此对于任何其他类型,您都需要复制它。

您不能。很抱歉不需要尝试,它的undoable.ioutil.ReadAll实际上返回字节,对吗?这意味着我必须为go中的所有类型编写类似的函数。@aswinmprabhu
[]byte
确实更新了答案。是的,在Go获得一些泛型类型之前,您必须为您需要的每种类型复制它。作为意图声明,我还将参数更改为
(b[]字节,u.error)
。下划线清楚地表明错误将被忽略ignored@EliasVanOotegem很好的一点,将进行更新。我会非常非常小心任何程序,它会抑制如此多的错误,它需要一个助手(或多个助手)来做这件事。那只是自找麻烦。