是否具有允许的最大函数返回数

时间:2019-02-21 01:06:37

标签: go return

使用golang的多次退货功能,是否有退货限制?假设内存大小不成问题,或者假设用户可以在某个函数上获得数百万美元的回报,那么

1 个答案:

答案 0 :(得分:3)

理论上没有限制。

https://golang.org/ref/spec#ExpressionList

当然,实际上,它有时会失败。

1000个输出参数:https://play.golang.org/p/pOf4YCahtER

在我的计算机上,我能够使用Go 1.11.5将其推入8190个输出参数。输出列表是一系列itype i int),并且return语句包含一系列0

将类型名称更改为ii降低了我能够达到的最大值。这表明限制来自表示输出参数的字符串的长度,而不是列表中元素的数量。

当列表过长时,这似乎是返回的错误:https://github.com/golang/go/blob/ed15e82413c7b16e21a493f5a647f68b46e965ee/src/cmd/compile/internal/gc/reflect.go#L544