Предыстория
Lua — это язык сценариев с динамической типизацией, который поддерживает несколько методологий программирования, таких как процедурное программирование и объектно-ориентированное программирование. Сегодня Lua используется во многих местах для поддержки сценариев и является одним из ведущих языков сценариев в таких играх, как World of Warcraft и Angry Birds. Он использует компилятор, очень похожий на Python, для преобразования своих скриптов в машинный код, который будет выполняться компьютером.

Настройка
Чтобы настроить среду разработки Lua, вам необходимо установить компилятор Lua, который вы можете найти здесь: https://www.lua.org/download.html. После загрузки распакуйте файлы и следуйте инструкциям в файле doc/readme.html. После этого обязательно добавьте файл bin в PATH, чтобы разрешить сопоставление системы с компилятором.

Основной синтаксис
Lua является динамически типизированным, что означает, что вам не нужно объявлять тип данных ваших переменных.
Следующие строки являются примерами числовых и строковых переменных:
a = 1
b = «Привет!»

Нет необходимости в точках с запятой для объявления конца строки (вы можете добавить их, если хотите). Они могут помочь разделить два или более операторов.
a = 1; б = «Привет!»

В Lua нет целочисленного типа, у него есть числовой тип, представляющий число двойной точности с плавающей запятой. Этот тип занимает 8 байтов компьютерной памяти и представляет широкий диапазон значений в виде вещественных или десятичных чисел.

a = 4
b = 4.4
c = 1.0e4

Существует специальный тип значения, называемый «nil», который используется для представления не-значения или отсутствия полезного значения.
с = ноль

Вместо массивов Lua использует таблицы, которые реализуют ассоциативные массивы, что позволяет индексировать его не только числами, но и строками или любым другим значением языка, кроме nil. Они также работают как ArrayLists в java, поскольку таблицы — это объекты, которые не имеют фиксированного размера и могут быть созданы для хранения любого количества элементов, которые вам могут понадобиться.

a = {} -- Создание таблицы
a["x"] = 1 -- Связать индекс со строкой
a[3] = "Index 3" -- Связать индекс с числом

print(a["x"]) -- должно быть выведено 1
print(a[3]) -- должно быть выведено "Index 3"

Функции в Lua очень интересны, поскольку они являются первоклассными значениями, то есть их можно хранить в переменных, передавать в качестве аргументов и возвращать в качестве результатов. Функции обладают гораздо большей универсальностью, поскольку во время программы их можно переопределить, чтобы добавить новые функции или удалить функцию, если она не нужна, или для защиты среды при запуске ненадежного кода. Еще одна замечательная особенность Lua заключается в том, что он может вызывать функции, написанные на C. Ниже будет показан базовый пример использования функций.

f = function() -- объявить и связать функцию с f
return «Hello!»
end

a = f() -- Вызвать функцию и получить возвращаемое значение

print(a) -- Это должно распечатать «Hello!»

Оператор if проверяет условия и выполняется в зависимости от условия. Синтаксис очень похож на инструкции sql if.

a = 10 -- объявление переменной

if a›0 then -- Условие
print("a больше 0") -- Тело оператора if
elseif (условие) then -- Необязательный else if statement
else - - Необязательный оператор else
end -- Завершить оператор if

Операторы while — это циклы, которые будут выполняться до тех пор, пока условие не станет ложным.

a = 0

while a‹3 do -- Установить условие
print(a) -- Тело оператора while
a = a + 1
end -- Завершить цикл

До сих пор вы видели глобальные переменные в Lua, однако есть еще один тип переменных, называемых локальными переменными. Эти переменные могут использоваться только в том блоке, в котором они указаны. Например:

a = 2 -- Объявить глобальную переменную

f = function()
local a = 5 -- Объявите локальную переменную
return a -- вернет 5
end

b = f()

print(a) -- печатает 2
print(b) -- печатает 5

И, наконец, у нас есть операторы for. В Lua есть два варианта оператора for: числовой for и общий for. Numeric for объявляет переменную, затем объявляет контрольную точку до следующего числа и будет увеличивать или уменьшать это число до тех пор, пока не достигнет контрольной точки.

for i=10,1,-1 do -- Первое число – это инициализатор, второе –
-- контрольная точка, а третье число – степень увеличения/уменьшения -- на
print(i)
конец

И затем у нас есть общий для которого используется для обхода всех значений, возвращаемых функцией итератора.

t = {1,2,3} -- Объявить таблицу со значениями

for x in pairs(t) do -- x получает значение для каждого индекса
print(x)
end

На этом мое введение в Lua и базовый синтаксис Lua завершится. В следующем блоге я объясню, как использовать Lua для создания проектов и приложений.