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 
}