在 Go 语言中,函数的多返回值是一个非常有用的功能,但它也有一些使用限制。
如下面这个例子:
func test() (int, int) {
return 1, 2
}
接收多返回值,必须使用多个变量来接收返回值:
x, y := test()
或者,使用 _
忽略不需要的返回值:
x, _ := test()
如果尝试用单个变量或容器对象(如切片、数组)接收多返回值,会导致编译错误。如:
s := make([]int, 2)
s = test() // Error: multiple-value test() in single-value context
//表示多返回值函数 test() 的结果不能赋值给单值上下文(如单个变量或容器对象)。
如果需要将多返回值存储到容器中,可以通过手动赋值、使用结构体或其他间接方式实现。