Уроки - Переменные

Переменная - это область памяти, содержащая в себе какую-либо информацию или значение. Переменные бывают разных типов:

* Boolean (bool) - логический тип. При логическом типе переменная имеет лишь два из возможных значений. Либо `true`, либо `false`.
* Number (он же double) - числовой тип.
* String - строковый тип. Содержит в себе текст.
* Nil - неопределенный тип (пустая переменная).

От места объявления переменной зависит то, где ее можно использовать и будет ли она временной. Временные переменные - это те, которые создаются и вызываются лишь раз, а после очищаются. С постоянными переменными все обстоит иначе: они содержат в себе что-либо на протяжении всего времени работы сервера. Дополнительно существует подтип переменных: локальная или глобальная. Локальные переменные активны лишь в своих блоках. Если же попытаться обратиться к локальной переменной, к примеру, находящейся в блоке [A], при этом находясь в блоке [Б], произойдет ошибка. Глобальные переменные можно вызывать в любом месте кода ПОСЛЕ объявления ее.

Рассмотрим создание переменной. Для работы используем файл `new.lua`, полученный в предыдущих уроках.

#### **Глобальные переменные**.

В самом начале файла освободим пространство и объявим несколько переменных:

Мы объявили 5 глобальных переменных, которые можно вызвать (использовать) в любом участке кода (в том числе и в других подключенных модулях).

#### **Локальные переменные.**

Теперь объявим 5 локальных переменных, которые можно будет вызвать в любом участке кода, но в юрисдикции этого файла.

Названия для переменных можно задавать любые (это касается любого вида), но есть два важных правила:

1. Переменная НЕ должна начинаться с цифры.
2. Не забывайте о регистрах. Если вы назовете переменную `VAR`, а обратиться к ней попытаетесь указав как `var` или иначе - произойдет ошибка.

#### **Массивы (таблицы).**

Помимо вышесказанного существует и иной тип переменных - массивы (таблицы). Это переменная, содержащая в себе несколько различных данных, в том числе и разных типов (если нужно). Такие таблицы объявляются в фигурных скобках и через запятую, соблюдая правильность указания типа данных:

В первой таблице (в будущем - массиве) мы указали 4 значения. Каждое значение - определенная ячейка. Счет ячеек начинается с единицы. Для примера: мне необходимо обратиться к второй ячейке массива VAR\_11. В качестве решения я обращусь к ней напрямую, указав нужную мне ячейку в квадратных скобках и выведу все это в консоль сервера. Вывод осуществим через команду `print().` Консоль сервера открывается после запуска исполнительного файла (`gmp_server.exe`) в корневной папке сервера.

Как видно на изображении, я обратился ко второй ячейке массива VAR\_11. Во второй ячейке находится значение " 1 ", в результате чего сервер обработал мой запрос и отобразил нужное мне значение.

Немного подробнее о команде `print()`: это языковая команда, позволяющая отобразить в консоли какую-либо информацию, в том числе написанную прямо внутри. Может сослужить хорошую службу при поиске ошибок или при составлении алгоритмов.

Теперь поговорим о другом виде объявления таблиц, более обширном. Для этого так же объявим ее и начнем заполнять информацией. Только в этот раз обратимся к каждому элементу массива и дополнительно выведем отдельный текст.