У go есть максимальное количество разрешенных возвратов функций - PullRequest
0 голосов
/ 21 февраля 2019

Используя функцию множественного возврата golang, допустим ли предел возврата?Или, возможно, пользователь гипотетически получит миллионы возвратов в функцию, если предположить, что объем памяти не является проблемой.

1 Ответ

0 голосов
/ 21 февраля 2019

В теории ограничений нет.

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.

Изменение имени типа на ii понизило максимальное значение, которое было до меня.способен достичь.Это говорит о том, что ограничение исходит из длины строки, которая представляет выходные параметры, а не из числа элементов в списке.

Кажется, что это возвращаемая ошибка, когда список слишком длинный: https://github.com/golang/go/blob/ed15e82413c7b16e21a493f5a647f68b46e965ee/src/cmd/compile/internal/gc/reflect.go#L544

...