小编典典

为什么要为返回参数命名?

go

命名函数的返回参数有什么好处?

func namedReturn(i int) (ret int) {
    ret = i
    i += 2
    return
}

func anonReturn(i int) int {
    ret := i
    i += 2
    return ret
}

阅读 258

收藏
2020-07-02

共1个答案

小编典典

命名它们有一些好处:

  • 它用作文档。
  • 它们会自动声明并初始化为零值。
  • 如果您有多个返回站点,则更改函数的返回值并不需要全部更改,因为它只会显示“ return”。

还有缺点,主要是很容易通过声明相同名称的变量来意外地遮盖它们。

有效的Go中有一个关于命名结果参数部分

可以给Go函数的返回或结果“参数”指定名称,并将其用作常规变量,就像传入参数一样。命名后,函数开始时会将它们初始化为零值。如果函数执行不带参数的return语句,则将结果参数的当前值用作返回值。

名称不是强制性的,但它们可以使代码更短,更清晰:它们是文档。如果我们命名nextInt的结果,则显而易见,返回的int是哪个。

func nextInt(b []byte, pos int) (value, nextPos int) {

[…]

2020-07-02