Справочное руководство по языку Lua 5.1 :: 3.3 - Псевдо-индексы



3.3 – Псевдо-индексы

За исключением особых случаев, любая параметризованная функция Lua может быть вызвана с псевдо-индексами. (Так как параметры передаются в функции через стек, каждому входному параметру соответствует индекс стека. Здесь речь идет и мнимых индексах стека – фактически это специальные переменные Lua, с которыми можно работать как с элементами стека). Это переменные Lua, доступные из С-кода, но не находящиеся в стеке. Псевдо-индексы используются для доступа к окружению потока, окружению функции, регистру и внешним значениям (§3.4).

Окружение потока (пространство жизни глобальных переменных) всегда доступно посредством псевдо-индекса LUA_GLOBALSINDEX. Окружение запущенной С-функции – это всегда псевдо-индекс LUA_ENVIRONINDEX.

Для доступа и изменения значения глобальных переменных вы можете использовать обычную таблицу операций над таблицей окружения. Например, доступа к значению глобальной переменной:

lua_getfield(L, LUA_GLOBALSINDEX, varname);