Это зависит от того, что вы подразумеваете под «именами динамических переменных».
Имена локальных переменных не существуют.Локальные переменные - это любая переменная, объявленная как параметр функции или с ключевым словом local
.Локальные переменные компилируются в смещения в стек Lua, поэтому их имена не существуют.Вы не можете индексировать что-либо по имени, чтобы получить их.
Глобальные переменные являются членами глобальной таблицы.Следовательно, эти способы установки глобальной переменной эквивалентны:
globalVar = 4
_G.globalVar = 4
_G["globalVar"] = 4
Поскольку программа, передающая переменные моему сценарию, называет их просто "in1, in2, in3" и т. Д.
Программа, которая передает переменные в ваш скрипт, не может их назвать.Переменная - это просто заполнитель для значения.Он не имеет права собственности на эту ценность.Когда ваша функция получает аргументы, ваша функция получает их имена.
Вы не много сказали о структуре вашей программы, поэтому я не могу дать хороший совет.Но если вы просто хотите принять некоторое количество значений в качестве параметров и получить доступ к ним в качестве входных данных, вы можете сделать это двумя способами.Вы можете взять таблицу, содержащую значения в качестве параметра, или вы можете взять переменные:
function MyFunc1(theArgs)
for i, arg in ipairs(theArgs) do
--Do something with arg.
end
end
function MyFunc2(...)
for i, arg in ipairs({...}) do
--Do something with arg.
end
end
MyFunc1 {2, 44, 22} --Can be called with no () because it takes a single value as an expression. The table.
MyFunc2(2, 44, 22)