Lua - скриптовый язык программирования, который в основном используется для создания бизнес-логики приложения.
Главная особенность Lua заключается в том, что он может использоваться как в качестве отдельного, так и встроенного скриптового языка. Уже в процессе создания разработчики поставили себе цель – сделать компактный и простой инструмент, который мог бы с легкостью работать в различных исполняющих средах и обеспечивать при этом должный уровень производительности
Помимо этого, Lua разрабатывался с учетом того, чтобы в последующем могли легко выучить его синтаксис и понять особенности. Причем простота языка делает его интересным даже непрофессиональным разработчикам.
Lua относится к языкам программирования ООП. Благодаря встроенным средствам параллельного программирования, разработчики могут создавать многопоточные приложения без обращения к внешним библиотекам или API. При этом, в языке эффективно реализованы возможности межъязыкового взаимодействия.
Где применяется язык Lua? Несмотря на достаточно широкое применение в промышленности, более активно он сегодня используется при разработке компьютерных игр.
Связано это с тем, что Lua позволяет довольно легко запрограммировать поведение так называемых NPC (от англ. Non-playable characters). Также, с помощью этого языка программируются и другие персонажи, поведение которых можно впоследствии быстро менять, не оказывая влияния на движок.
Lua обладает следующими преимуществами:
Что касается недостатков, к ним можно отнести то, что язык является скриптовым. Конечно, его можно использовать и самостоятельно, однако чаще всего он применяется вместе с другими языками программирования, например С. Поэтому для полноценной работы потребуется знание еще одного языка разработки.
Lua является довольно простым в изучении языком, он имеет всего лишь 22 ключевых слова, для сравнения, в C# зарезервированно 77 ключевых слов
Синтаксис языка напоминает Python или JavaScript, но в отличии от них, выглядит более простым и свободным.
В языке практически нет строгих правил, поэтому написать одно и тоже действие можно разнообразными способами.
Пример стандартного Hello World! тремя разными способами:
Помимо этого Lua позволяет использовать на первый взгляд абсурдное написание кода:
В языке представлены следующие типы данных:
Однако в Lua используется динамическая типизация, поэтому нельзя чётко указать тип данных, не считая функций.
Рассмотрим пример самого простого алгоритма сортировки, реализованного в Lua:
Рассмотрим каждый блок в отдельности:
function ShowTable(t)
print(table.concat(t, ", "))
end
Данный блок является очень простым и лишь выводит массив скрепив его в одну строку с помощью table.concat()
Следующий уже является более интересным:
function Sort(t)
for i = 1, #t - 1 do
for j = i + 1, #t do
if t[i] > t[j] then
x = t[i]
t[i] = t[j]
t[j] = x
end
end
end
return t
end
На первый взгляд ничего особенного, кроме самого алгоритма тут нет, однако есть пару вещей расказывающих о синтаксисе языка:
#Переменная
print "Table:"
a = {10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0}
ShowTable(a)
print ""
print "After sort:"
a = Sort(a)
ShowTable(a)
print ""
Ну и само тело скрипта, в котором просто создаётся массив и вызываются функции.