Function 如何添加函数直接返回的多个值
我有以下代码Function 如何添加函数直接返回的多个值,function,go,Function,Go,我有以下代码 package main import "fmt" func main() { a := 0 b := 0 a, b += getValues() fmt.Println(a, b) } func getValues() (a int, b int) { a = 0 b = 5 return } 我想直接添加函数返回的多个值。我只是想知道围棋中是否有这样的规定 当我运行上述代码时,我得到以下错误 syntax erro
package main
import "fmt"
func main() {
a := 0
b := 0
a, b += getValues()
fmt.Println(a, b)
}
func getValues() (a int, b int) {
a = 0
b = 5
return
}
我想直接添加函数返回的多个值。我只是想知道围棋中是否有这样的规定
当我运行上述代码时,我得到以下错误
syntax error: unexpected +=, expecting := or = or comma
您可以使用一个helper方法,该方法接受可变数量的参数,并仅返回从参数创建的切片
func aggregator(res ...interface{}) []interface{}{
return res
}
如果要转义额外的类型断言,可以为helper函数的输入和输出参数设置要使用的类型(在您的示例中为int)。但下面是一个使用接口{}的示例:
不,你不能在GO做这个,请不要那样做。它的可读性远不如自然选择。
func main() {
fmt.Printf("%d, %d", aggregator(f())[0].(int), aggregator(f())[1].(int))
}
func aggregator(res ...interface{}) []interface{}{
return res
}
func f () (int, int) {
return 1,2
}