это мощная структура данных, которая может использоваться для создания массивов, словарей и других сложных структур.
* **function:** Функция – это блок кода, который можно многократно вызывать.
* **userdata:** Специальный тип данных, используемый для представления объектов C, используемых в Roblox API.
* **thread:** Представляет собой корутину (сопрограмму).
**Операторы** используются для выполнения операций над данными. Lua поддерживает следующие типы операторов:
* **Арифметические:** `+` (сложение), `-` (вычитание), `*` (умножение), `/` (деление), `%` (остаток от деления), `^` (возведение в степень).
* **Сравнения:** `==` (равно), `~=` (не равно), `>` (больше), `<` (меньше), `>=` (больше или равно), `<=` (меньше или равно).
* **Логические:** `and` (логическое И), `or` (логическое ИЛИ), `not` (логическое НЕ).
* **Конкатенации:** `..` (соединение строк).
* **Длины:** `#` (возвращает длину строки или таблицы).
```lua
x = 10
y = 5
sum = x + y – sum = 15
difference = x – y – difference = 5
product = x * y – product = 50
quotient = x / y – quotient = 2
isEqual = (x == y) – isEqual = false
greeting = "Hello" .. " Roblox!" – greeting = "Hello Roblox!"
length = #"Roblox" – length = 6
```
**1.3 Управляющие структуры и функции**
**Управляющие структуры** позволяют контролировать порядок выполнения кода. В Lua есть следующие основные управляющие структуры:
* **Условный оператор `if`:** Выполняет блок кода, если условие истинно.
```lua
score = 85
if score >= 90 then
print("Отлично!")
elseif score >= 70 then
print("Хорошо!")
else
print("Попробуйте еще раз.")
end
```
* **Цикл `while`:** Выполняет блок кода, пока условие истинно.
```lua
count = 1
while count <= 5 do
print("Итерация: " .. count)
count = count + 1
end
```
* **Цикл `for`:** Используется для итерации по числовому диапазону или по элементам таблицы.
```lua
–– Числовой for
for i = 1, 5 do
print("Число: " .. i)
end
–– Итерация по таблице (об этом подробнее позже)
myTable = {"яблоко", "банан", "апельсин"}
for index, value in ipairs(myTable) do
print(index .. ": " .. value)
end
```
* **Цикл `repeat…until`:** Выполняет блок кода до тех пор, пока условие не станет истинным.
```lua
count = 1
repeat
print("Итерация: " .. count)
count = count + 1
until count > 5
```
**Функции** – это блоки кода, которые можно именовать и вызывать многократно. Они помогают организовать код, сделать его более читаемым и избежать повторений.
```lua
function greet(name)
print("Привет, " .. name .. "!")
end
greet("Игрок") – Вызов функции, выведет "Привет, Игрок!"
function add(a, b)
return a + b
end
sum = add(5, 3) – sum = 8
```
**Заключение**
В этой главе мы познакомились с основами языка программирования Lua: синтаксисом, переменными, типами данных, операторами, управляющими структурами и функциями. Эти знания являются фундаментом для дальнейшего изучения написания сценариев в Roblox. В следующей главе мы погрузимся в среду разработки Roblox Studio и начнем применять полученные знания на практике. Не забывайте практиковаться и экспериментировать