使用golang的多次退货功能,是否有退货限制?假设内存大小不成问题,或者假设用户可以在某个函数上获得数百万美元的回报,那么
答案 0 :(得分:3)
理论上没有限制。
https://golang.org/ref/spec#ExpressionList
当然,实际上,它有时会失败。
1000个输出参数:https://play.golang.org/p/pOf4YCahtER
在我的计算机上,我能够使用Go 1.11.5将其推入8190个输出参数。输出列表是一系列i
(type i int
),并且return语句包含一系列0
。
将类型名称更改为ii
降低了我能够达到的最大值。这表明限制来自表示输出参数的字符串的长度,而不是列表中元素的数量。
当列表过长时,这似乎是返回的错误:https://github.com/golang/go/blob/ed15e82413c7b16e21a493f5a647f68b46e965ee/src/cmd/compile/internal/gc/reflect.go#L544