Является ли _VERSION единственной глобальной переменной, оставшейся в Lua 5.1?
-
02-07-2019 - |
Вопрос
Озадачен ссылками в документации Lua 5.0 на такие вещи, как _LOADED
, LUA_PATH
, _ALERT
и так далее (которые я не мог использовать в Lua 5.1), я обнаружил, что все это было удалено, а функциональность перенесена в другое место.Прав ли я, полагая, что единственная глобальная переменная, оставшаяся в Lua 5.1, — это _VERSION
?
Решение
Документы, кажется, думают, что это почти случай....
_G Глобальная переменная (не функция), которая содержит глобальную среду (то есть _g._g = _g).Сам LUA не использует эту переменную;Изменение его стоимости не влияет на какую-либо среду, ни наоборот.(Используйте SetFenv, чтобы изменить среды.)
Похоже, есть еще _PROMPT и _PROMPT2, но только при интерактивном использовании автономного Lua:
Если глобальная переменная _prompt содержит строку, то ее значение используется в качестве приглашения.Точно так же, если глобальная переменная _prompt2 содержит строку, ее значение используется в качестве вторичной подсказки (выпускается во время неполных операторов).Следовательно, оба подсказок могут быть изменены непосредственно в командной строке или в любых программах LUA, назначив _prompt.
Другие советы
Предполагая, что вы не открываете любой библиотеки, есть также _G
, pairs
, ipairs
и newproxy
.