|
@@ -1,6 +1,5 @@
|
|
|
-
|
|
|
# Lua
|
|
|
-
|
|
|
+
|
|
|
**Lua** - скриптовый язык программирования, который в основном используется для создания бизнес-логики приложения.
|
|
|
Главная особенность **Lua** заключается в том, что он может использоваться как в качестве отдельного, так и встроенного скриптового языка. Уже в процессе создания разработчики поставили себе цель – сделать компактный и простой инструмент, который мог бы с легкостью работать в различных исполняющих средах и обеспечивать при этом должный уровень производительности
|
|
|
___
|
|
@@ -16,10 +15,10 @@ Lua обладает следующими преимуществами:
|
|
|
3. Возможность быстрого добавления новых библиотек, написанных на языке **С**.
|
|
|
4. Простота синтаксиса и развертывания. Изучение языка не потребует много времени у тех, кто уже занимается программированием. Для новичков этот язык также будет просто в изучении.
|
|
|
5. Приложения и программы, написанные на **Lua** потребляют мало памяти.
|
|
|
+
|
|
|
Что касается недостатков, к ним можно отнести то, что язык является скриптовым. Конечно, его можно использовать и самостоятельно, однако чаще всего он применяется вместе с другими языками программирования, например **С**. Поэтому для полноценной работы потребуется знание еще одного языка разработки.
|
|
|
___
|
|
|
-
|
|
|
-### Основы
|
|
|
+### Основы
|
|
|
**Lua** является довольно простым в изучении языком, он имеет всего лишь 22 ключевых слова, для сравнения, в **C#** зарезервированно 77 ключевых слов
|
|
|

|
|
|
Синтаксис языка напоминает **Python** или **JavaScript**, но в отличии от них, выглядит более простым и свободным.
|
|
@@ -32,17 +31,18 @@ ___
|
|
|

|
|
|

|
|
|
___
|
|
|
-### Типы данных
|
|
|
-В языке представлены следующие типы данных:
|
|
|
-+ Boolean - логический тип.
|
|
|
-+ Nil - пустой тип, аналог null.
|
|
|
-+ Number - любое число.
|
|
|
-+ String - строка текста.
|
|
|
-+ Function - функция
|
|
|
-+ Table - может быть массивом, словарём или некой реализацией класса.
|
|
|
-Однако в **Lua** используется динамическая типизация, поэтому нельзя чётко указать тип данных, не считая функций.
|
|
|
-___
|
|
|
-### Пример скрипта
|
|
|
+### Типы данных
|
|
|
+В языке представлены следующие типы данных:
|
|
|
+1. Boolean - логический тип.
|
|
|
+2. Nil - пустой тип, аналог null.
|
|
|
+3. Number - любое число.
|
|
|
+4. String - строка текста.
|
|
|
+5. Function - функция.
|
|
|
+6. Table - может быть массивом, словарём или некой реализацией класса.
|
|
|
+
|
|
|
+Однако в **Lua** используется динамическая типизация, поэтому нельзя чётко указать тип данных, не считая функций.
|
|
|
+___
|
|
|
+### Пример скрипта
|
|
|
Рассмотрим пример самого простого алгоритма сортировки, реализованного в **Lua**:
|
|
|

|
|
|
Рассмотрим каждый блок в отдельности:
|
|
@@ -51,8 +51,10 @@ function ShowTable(t)
|
|
|
print(table.concat(t, ", "))
|
|
|
end
|
|
|
```
|
|
|
+
|
|
|
Данный блок является очень простым и лишь выводит массив скрепив его в одну строку с помощью ``table.concat()``
|
|
|
Следующий уже является более интересным:
|
|
|
+
|
|
|
``` Lua
|
|
|
function Sort(t)
|
|
|
for i = 1, #t - 1 do
|
|
@@ -67,9 +69,12 @@ function Sort(t)
|
|
|
return t
|
|
|
end
|
|
|
```
|
|
|
-На первый взгляд ничего особенного, кроме самого алгоритма тут нет, однако есть пару вещей расказывающих о синтаксисе языка:
|
|
|
-+ Для получения размера массива используется символ #. ``#Переменная``
|
|
|
+
|
|
|
+На первый взгляд ничего особенного, кроме самого алгоритма тут нет, однако есть пару вещей расказывающих о синтаксисе языка:
|
|
|
+
|
|
|
++ Для получения размера массива используется символ #. ``#Переменная``
|
|
|
+ Массивы начинаются с 1, а не с 0, как это принято обычно.
|
|
|
+
|
|
|
``` Lua
|
|
|
print "Table:"
|
|
|
a = {10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0}
|
|
@@ -81,4 +86,5 @@ a = Sort(a)
|
|
|
ShowTable(a)
|
|
|
print ""
|
|
|
```
|
|
|
+
|
|
|
Ну и само тело скрипта, в котором просто создаётся массив и вызываются функции.
|