1

在 Golang 中,出现错误时使用零值。例如,如果一个键在 map[int]string 中不存在,则返回一个空字符串。

我正在编写一个函数,它接受一个 url 并返回在发出 http 请求时收到的 json 字符串。如果错误不为空,我想将主体的返回值设置为零值字节数组。由于字节数组可以转换为其他数据类型,我无法弄清楚将其设置为什么。也许取决于上下文?既然我希望返回的值是一个字符串,我应该将它设置为一个空字符串吗?

4

1 回答 1

3

不,零值不习惯用作带内错误值。Map 为不存在的键返回零值,但这是一个(经常使用的)功能,因为如果需要,可以通过替代语法测试是否存在

v, ok := m[k]

使用多个返回值同时返回一个值一个信号。

要发出一个简单的(真/假,正常/不正常,...)条件,请使用布尔值。

要发出错误情况的信号,请使用error键入的值。

等等。

顺便说一句:Go 编程语言没有强制转换。它有转换,它们与演员表不同。

于 2013-08-01T16:05:05.840 回答