За исключением того, что _G
является самой глобальной переменной, _G
является таблицей времени выполнения (и поэтому может быть перечислено только в некоторый момент во время определенного запуска).Вы правы, что в нем будут перечислены глобальные переменные, которые устанавливаются сценарием, а также инициализацией состояния Lua и другими используемыми сценариями.
Один из способов найти идентификаторы переменных, которые компилятор будет связывать как глобальные.использовать инструмент командной строки luac
:
luac -l script.lua | grep [SG]ETGLOBAL
Во втором столбце указан номер строки.Последний столбец (комментарий) дает идентификатор.