<< Click to Display Table of Contents >> Navigation: Modbus Universal MasterOPC Server > Руководство по языку Lua 5.1 > Язык и синтаксис > Переменные > Переменные |
Переменные используются для хранения значений в процессе выполнения программы. В Lua есть три вида переменных: глобальные, локальные и поля таблиц.
Отдельный идентификатор может обозначать глобальную или локальную переменную (либо формальный параметр функции, что является частным случаем локальной переменной):
Name
Здесь Name – идентификатор (см. Лексические соглашения ).
Любая переменная считается глобальной, если она явно не объявлена как локальная (см. Объявление локальных переменных ). Локальные переменные существуют в лексическом контексте: локальные переменные доступны функциям, определенным внутри этого контекста (см. Области видимости ).
До первого явного присвоения значением переменной является nil.
Квадратные скобки используются для доступа к элементу таблицы по индексу:
mytable [1] --обращение к первому индексу таблицы mytable
Важно! В Lua при обращении к элементам таблицы нумерация элементов начинается с 1, а не с 0 (как принято в C, Pascal)
Запись var.Name аналогична записи var["Name"]:
mytable.FirstElement --обращение к элементу FirstElement таблицы mytable
mytable[FirstElement]
Все глобальные переменные являются полями в обычных таблицах Lua, называемых тaблицaми okpужeния или кратко okpужeниями. Каждая функция имеет ссылку на свое собственное окружение, и все глобальные переменные внутри этой функции ссылаются на данную таблицу. В момент создания функция наследует окружение вызывающей функции. Для получения таблицы окружения функии Lua можно вызвать функцию getfenv . Для перезаписи таблицы используется setfenv .