【发布时间】:2019-09-12 14:10:55
【问题描述】:
我正在尝试返回一个变量以及一个返回多个值的函数。
考虑这个人为的例子:
func twoInts() (int, int) {
return 2, 3
}
func threeInts() (int, int, int) {
return 1, twoInts()
}
调用threeInts()返回“单值上下文中的多值twoInts()”。
我知道我可以执行以下操作
func twoInts() (int, int) {
return 2, 3
}
func threeInts() (int, int, int) {
num1, num2 := twoInts()
return 1, num1, num2
}
但我试图理解为什么返回是单值上下文。
Go 是否认为 return 是
int, (int, int)?有没有办法扩展第一个函数返回,使其返回int, int, int?
【问题讨论】:
-
原始代码中的 twoInts() 代替了第二个返回值。第三个返回值完全丢失的事实被第一个“单值上下文中的多值”错误所隐藏。没有比你已经想出来的更短的版本了。
标签: go