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

问题描述 投票:-2回答:1

使用golang的多重返回功能,是否允许任何回报限制?或者假设内存大小不是问题,用户可以假设在函数上有数百万的返回。

go return
1个回答
3
投票

从理论上讲,没有限制。

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

当然,在实践中,它会在某些时候失败。

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

在我的计算机上,我可以使用Go 1.11.5将其推送到8190输出参数。输出列表是一系列is(type i int),return语句包含一系列0s。

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

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

© www.soinside.com 2019 - 2024. All rights reserved.