【问题标题】:Return 1 value to the function with multiple return values in golang在golang中将1个值返回给具有多个返回值的函数
【发布时间】:2021-10-10 17:42:01
【问题描述】:

我只想将 1 个值返回给具有多个返回值的函数。 我试过这个:

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

但它不起作用并引发了这个错误:不能使用_作为值

我已经知道可以接收返回值之一。

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

【问题讨论】:

  • Is there any way to return just 1 value?简单明了:没有。
  • 你能详细说明你为什么会这样做吗?为什么不从你没有使用它的签名中删除一个返回值?
  • 我不知道这是不可能的,所以我选择了使用两个返回值的错误算法。

标签: go multiple-return-values


【解决方案1】:

其他返回参数使用zero value

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

如果你使用named result参数,你也可以这样做:

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

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

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

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

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

但我个人认为不值得。只需为“未使用”的返回参数返回零值。

【讨论】:

  • 任何一个都可以更改函数签名,或者,如果这是一个外部合约,那么返回值可能会丢失。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-14
  • 2020-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多