以下是我要实现的目标
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()?
答案 0 :(得分:0)
如果您只想要一次,我认为这毫无意义。但是,如果这是一种常见情况,并且您认为它可以大大提高代码的可读性,请尝试执行以下操作:
// 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)))
不幸的是,这是特定于字符串的函数,因此对于任何其他类型,您都需要复制它。