Используя функцию множественного возврата golang, допустим ли предел возврата?Или, возможно, пользователь гипотетически получит миллионы возвратов в функцию, если предположить, что объем памяти не является проблемой.
В теории ограничений нет.
https://golang.org/ref/spec#ExpressionList
На практике, конечно, в какой-то момент произойдет сбой.
1000 выходных параметров: https://play.golang.org/p/pOf4YCahtER
На моем компьютере мне удалось довести его до выходных параметров 8190 с помощью Go 1.11.5.Список вывода представлял собой серию i s (type i int), а оператор return содержал серию 0 s.
i
type i int
0
Изменение имени типа на ii понизило максимальное значение, которое было до меня.способен достичь.Это говорит о том, что ограничение исходит из длины строки, которая представляет выходные параметры, а не из числа элементов в списке.
ii
Кажется, что это возвращаемая ошибка, когда список слишком длинный: https://github.com/golang/go/blob/ed15e82413c7b16e21a493f5a647f68b46e965ee/src/cmd/compile/internal/gc/reflect.go#L544