Return 1 value to the function with multiple return values in golang

huangapple go评论86阅读模式
英文:

Return 1 value to the function with multiple return values in golang

问题

我想要将多个返回值的函数只返回一个值。
我尝试了以下代码:

func myFunc() (int, int){
    return _, 3
}

但是它没有起作用,并且报错:无法使用_作为值。

我已经知道可以接收其中一个返回值。

有没有办法只返回一个值?

英文:

I want to return just 1 value to the function with multiple return values.
I tried this:

func myFunc() (int, int){
    return _, 3
}

But it didn't work and raised this error: cannot use _ as value

I already know that It's possible to receive one of the returned values.

Is there any way to return just 1 value?

答案1

得分: 2

对于其他返回参数,可以使用零值

func myFunc() (int, int){
    return 0, 3
}

如果使用命名返回值参数,也可以这样做:

func myFunc() (x, y int){
    y = 3
    return
}

在这种情况下,x也将是其类型的零值,在int的情况下为0

你还可以编写一个辅助函数,添加一个虚拟的返回值,例如:

func myFunc() (int, int) {
    return extend(3)
}

func extend(i int) (int, int) {
    return 0, i
}

但个人认为这不值得。对于“未使用”的返回参数,只需返回零值即可。

英文:

Use the zero value for the other return parameters:

func myFunc() (int, int){
    return 0, 3
}

If you use named result parameters, you may also do:

func myFunc() (x, y int){
    y = 3
    return
}

In this case x will also be the zero value of its type, 0 in case of int.

You could also write a helper function which adds a dummy return value, e.g.:

func myFunc() (int, int) {
    return extend(3)
}

func extend(i int) (int, int) {
    return 0, i
}

But personally I don't think it's worth it. Just return the zero value for "unused" return parameters.

huangapple
  • 本文由 发表于 2021年10月11日 01:42:01
  • 转载请务必保留本文链接:https://go.coder-hub.com/69517543.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定