Захват и список глобалов в скрипте Lua - PullRequest
0 голосов
/ 29 ноября 2018

Как выполнить итерацию по всему сценарию, чтобы получить список всех глобальных переменных.

Я понимаю, что _G - это таблица окружения, в которой содержатся все глобальные переменные, но она содержит буквально ВСЕ глобальные глобальные переменные.Я хочу только глобальные переменные в моем сценарии

1 Ответ

0 голосов
/ 30 ноября 2018

За исключением того, что _G является самой глобальной переменной, _G является таблицей времени выполнения (и поэтому может быть перечислено только в некоторый момент во время определенного запуска).Вы правы, что в нем будут перечислены глобальные переменные, которые устанавливаются сценарием, а также инициализацией состояния Lua и другими используемыми сценариями.

Один из способов найти идентификаторы переменных, которые компилятор будет связывать как глобальные.использовать инструмент командной строки luac:

luac -l script.lua | grep [SG]ETGLOBAL

Во втором столбце указан номер строки.Последний столбец (комментарий) дает идентификатор.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...