是否所有 Go 函数都返回 err 作为第二个返回值?



我看到代码片段是函数返回err作为最后一个参数很多时间。

f, err := strconv.ParseFloat(asciiFloat, 64)

问题是,即使函数实现中不涉及错误处理,也必须使所有函数返回错误。 我如何知道函数是否返回err值?

每次需要使用函数时都必须签出文档吗?

回答你的问题:幸运的是,Go 防止了某些类型的程序员错误。如果您忘记了函数返回的值之一,它不会让您编译程序。

在 Go 中返回错误是一个很好的做法,请阅读 Effective Go 的错误部分

库例程通常必须向调用方返回某种错误指示。如前所述,Go 的多值返回使得在正常返回值的同时返回详细的错误描述变得容易。使用此功能提供详细的错误信息是一种很好的风格。

和错误处理和去

在 Go 中,错误处理很重要。该语言的设计和约定鼓励您明确检查错误发生时

但是这里描述了一个问题,可能会在 Go 2 中得到改进

一般来说,Go 程序有太多的代码检查错误,而没有足够的代码处理它们。

戴夫·切尼在博客中写道

我建议更改您的代码,这样您就不会有那么多错误需要处理。

必须使所有函数都返回错误

不。
但是如果你的函数可能返回错误 - 你必须将这个错误作为最后一个值返回。
最好将错误作为最后一个值返回。

我怎么知道一个函数是否返回错误

在使用某个函数之前,您必须查看该函数,并且在声明中您将看到返回的函数。此外,最好阅读文档以运行,并查看如何使用功能。

最新更新