gpt4 book ai didi

function - 如何直接将函数返回的多个值相加

转载 作者:数据小太阳 更新时间:2023-10-29 03:45:15 26 4
gpt4 key购买 nike

我有以下代码。

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
}

我想直接将函数返回的多个值相加。我只是想 Go 中是否有这样的规定。

当我运行上面的代码时,出现以下错误。

syntax error: unexpected +=, expecting := or = or comma

最佳答案

您可以使用一个辅助方法,该方法接受可变数量的参数并只返回从参数创建的 slice

func aggregator(res ...interface{}) []interface{}{
return res
}

如果你想逃避额外的类型断言,你可以为辅助函数的输入和输出参数设置你想要使用的类型,在你的例子中是 int。但这是一个使用 interface{} 的示例:

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
}

Go Playground.

关于function - 如何直接将函数返回的多个值相加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55437986/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com