Документация Скачать
Поиск:

Справочное руководство по языку Lua 5.1



2.9 - Окружение

Кроме метатаблиц, объекты типа thread, function и userdata обладают дополнительными таблицами, которые называют окружением. Подобно метатаблицам, окружения являются регулярными таблицами и множество объектов могут совместно использовать одно окружение.

Окружение, соответствующее типу userdata, не имеет смысла в Lua. Оно введено для удобства ассоциирования таблиц и значений типа userdata.

Окружения, относящиеся к типу threads, называют глобальными окружениями. Они используются как окружения по умолчанию для потоков и невложенных функций, созданных в потоке (с помощью loadfile, loadstring или load) и могут использоваться непосредственно в С-коде (смотрите §3.3).

Окружения, ассоциированные с C -функциями, могут непосредственно использоваться в C -коде (смотрите §3.3). Они используются как окружения по умолчанию для других С-функций, созданных на базе этой.

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

Вы можете изменять окружение функций Lua или запупскать потоки при помощи вызова setfenv. Вы можете получить окружение Lua -функции или запущенного потока с помощью getfenv . Доступ к окружению других объектов (типа userdata, функций C, потоков) возможен посредством C API.

Перепечатка материалов только с разрешения владельцев сайта Lua.ru.