如果我不需要错误处理,如何将多值返回函数的结果用作Golang中另一个函数的参数?

时间:2018-08-07 12:46:07

标签: 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()的结果传递给fmt.Println()?

1 个答案:

答案 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)))

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