Я изучаю Lua для университетского класса в области разработки мобильных приложений, и в последнее время мы рассмотрели оператор многоточия (...), позволяющий использовать динамическое количество аргументов. Из любопытства я решил попробовать и выяснить, есть ли предел, сколько аргументов он может справиться, как выясняется это 248.Экспрессия Lua Ellipsis ограничена 248
Например:
function pr(...)
print(...)
end
pr(1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1)
Я думал, может быть, это зависит от ОС или связано с размером стека, поэтому я тестировал это как на Linux, так и на Windows, как на 32-битной, так и на 64-битной версиях каждого. Количество разрешенных элементов оставалось на уровне 248. Казалось бы, это жестко закодированный лимит. Если я пытаюсь> 248, то я получаю ошибку я получаю:
main.lua:30 function or expression too complex near <eof>
Я не могу себе представить, кто нуждается в более чем 248 выражений в большинстве случаев, но и для тех случаев, есть способ обойти это? Кроме того, почему это 248? Это число не кажется особенным.
Это будет зависеть от конкретной версии Lua, которую вы используете. Знаете ли вы, что Corona использует 5.1 или 5.2? – hugomg
Corona использует lua 5.1, хотя я не тестировал это корона на linux. Я использовал терминал для запуска кода lua, и это использовало lua 5.3, поскольку я не мог заставить корону работать правильно. – Rhexis