Переменные

<< 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 .