3 回答
TA贡献1866条经验 获得超5个赞
命名它们有一些好处:
它用作文档。
它们会自动声明并初始化为零值。
如果您有多个返回站点,则在更改函数的返回值时无需全部更改它们,因为它只会显示“ return”。
还有缺点,主要是很容易通过声明相同名称的变量来意外地遮盖它们。
有效的Go中有一个关于命名结果参数的部分:
可以给Go函数的返回或结果“参数”指定名称,并将其用作常规变量,就像传入的参数一样。命名后,函数开始时会将它们初始化为其类型的零值;否则,将它们初始化为零。如果函数执行不带参数的return语句,则将结果参数的当前值用作返回值。
名称不是强制性的,但它们可以使代码更短,更清晰:它们是文档。如果我们命名nextInt的结果,则显而易见,返回的int是哪个。
func nextInt(b []byte, pos int) (value, nextPos int) {[...]
TA贡献1851条经验 获得超4个赞
至少在两种情况下很有用:
每当必须声明要返回的变量时。例如
func someFunc() (int, error) {
var r int
var e error
ok := someOtherFunc(&r) // contrived, I admit
if !ok {
return r, someError()
}
return r, nil
}
与
func someFunc() (r int, e error) {
ok := someOtherFunc(&r)
if !ok {
e = someError()
}
return
}
随着通过函数的执行路径数量的增加,这一点变得越来越重要。
在记录返回值并希望按名称引用它们时。godoc将返回变量视为函数签名的一部分。
- 3 回答
- 0 关注
- 187 浏览
添加回答
举报