У Lua використовується динамічна типізація змінних. Це означає, що немає сенсу явно вказувати тип змінних, достатньо привласнити бажане значення, а сам компілятор визначить і встановить тип змінної. При цьому можлива ситуація, коли змінна у різних місцях коду змінює свій тип. Втім, це не є турботою програміста, що полегшує йому роботу.
Імена змінних
У імені змінних можна використовувати лише латинські літери та символ підкреслення (_var). Змінні обов'язково повинні починатися з латинської літери або символу підкреслення і повинні починатися з цифри.
Правильні змінні
_lyric
dust
o_O
terminator2
Неправильні змінні
123--починається з цифри<креветка — містить російські букви
to-to — містить знак —
Типи змінних
У Lua є кілька типів змінних: nil, логічний, число, текст, функція, таблиця.
nil
nil — це пусте значення. Будь-яка змінна, яка ще не набула значення має nil.
<code data-language="lua">apple=5; res=apple + b;
У даному прикладі буде виведена помилка, оскільки змінна b явно не визначена і за замовчуванням дорівнює nil, що призводить до помилки при додаванні .
Логічний
До логічного (бульового) типу відносяться значення false (брехня) та true (істина). Значення nil та false вважаються хибними, будь-яке інше значення вважається істинним.
<code data-language="lua">if (a> 1) then return true end
У цьому прикладі буде повернуто істину, якщо змінна a більше одиниці.
Числа
Всі числа в Lua є речовими (подвійний точності з плаваючою комою, якщо вдаватися до подробиць). Втім, якщо ви складаєте два цілих числа, то результат побачите у вигляді цілого числа.
<code data-language="lua">res=10 + 14; print (res);
У даному випадку буде виведено число 24.
Текст
Для позначення тексту застосовуються подвійні або одинарні лапки, а також їх Комбінація. Різниці між подвійними та одинарними лапками в більшості випадків немає, за винятком випадку, коли всередині тексту зустрічається лапка.
<code data-language="lua">song1='Bohemian Rhapsody'; song2="We Will Rock You"; song3="Don't Try So Hard"; song4='You\'re My Best Friend'; song5='Teo Torriatte ("Let Us Cling Together")';
У даному прикладі в перших двох змінних застосовуються різні лапки і це ніяк не відбивається на їх значенні. У тексті третього рядка зустрічається одинарна лапка, тому щоб виключити конфлікт лапок, весь текст взятий в подвійні лапки. У четвертому рядку текст взято в одинарні лапки, а внутрішній апостроф екранований за допомогою слеша (\'). У п'ятому рядку весь текст взято в одинарні лапки, оскільки всередині тексту зустрічаються подвійні лапки.
Багаторядковий текст можна зробити двома способами.
1. Використовувати подвійні лапки, як показано вище та в місці перекладу рядка вставити \n.
<code data-language="lua">text="Це\nбагаторядковий\nтекст;
2. Позначити багаторядковий текст подвійними квадратними дужками, як показано нижче.
<code data-language="lua">text=[[ Це багаторядковий текст ]]
Функція
Функції використовуються для виклику фрагмента коду. одне або кілька значень в залежності від заданих параметрів або взагалі без них.У прикладі нижче функція повертає ряд чисел у змінну lost. , 8, 15, 16, 23, 42;end
Таблиця
Таблиця є асоційованим масивом з широкими можливостями. числа, але й текст, за винятком nil.Ніж у прикладі показано, як визначити таблицю та її значення. 123 — значення 123 пов'язане з ключем "foo" у таблиці tt[3]="bar" — значення "bar" пов'язано з ключем 3 у таблиці t
Ключові слова
Якщо змінні не можна використовувати такі зарезервовані ключові слова:
and break do else elseif end false
Глобальні та локальні змінні
Всі змінні за замовчуванням вважаються глобальними, вони доступні в будь-якому місці коду. Якщо потрібна локальна змінна, наприклад, лише всередині функції, перед ім'ям змінної додається ключове слово local.
<code data-language="lua">a=1; — Світова змінна local b=2;--локальна змінна