我是新来的Golang程序员,而且我看到代码段很多时候函数返回err
作为最后一个参数。
f, err := strconv.ParseFloat(asciiFloat, 64)
即使函数实现中没有错误处理,也必须使所有函数都返回err。
以及我怎么知道一个函数是否正在返回err
值?
每次需要使用函数时,我都必须签出文档吗?
答案 0 :(得分:3)
回答您的问题: 幸运的是,Go可以防止某些类型的程序员错误。如果您忘记了函数返回的值之一,就不会编译程序。
在Go语言中返回错误是一种好习惯,请阅读Effective Go
的错误部分库例程必须经常向调用者返回某种错误指示。如前所述,Go的多值返回使返回正常的返回值以及详细的错误描述变得容易。使用此功能提供详细的错误信息是一种很好的方式。
在Go中,错误处理很重要。该语言的设计和约定鼓励您明确检查错误发生的位置
但是,here中描述了一个问题,在Go 2中可能会得到解决
通常,Go程序的代码检查错误太多,而处理它们的代码不足。
戴夫·切尼(Dave Cheney)用the blog写信
我建议您更改代码,以免出现太多错误要处理。
答案 1 :(得分:2)
必须使所有函数都返回err
不。
但是如果您的函数可能返回错误-您必须将此错误作为最后一个值返回。
最好将错误返回为最后一个值。
我怎么知道一个函数是否正在返回err
在使用某些函数之前,您必须先看到该函数,然后在声明中看到返回的函数。阅读功能文档并了解如何使用功能也是很好的选择。