Установка
Установить lua достаточно легко можно через brew
Далее нам нужно будет создать файл с небольшим примером кода на lua
demo.lua
Далее нам нужно запустить терминал. Сделать это можно так же прямо в виме через команду :terminal
. Начать писать можно через переход в режим terminal через i
И запускаем файл
Из терминала можно выключить через стандартный exit
Переменные
Переменные в lua делятся на локальные и глобальные.
Создать локальную переменную можно с помощью конструкции local
.
Основные типы: числа, строки, булевы значения, таблицы, массивы (таблицы с числовыми индексами), nil
Конкатенация строк происходит через ..
Вывести текст через print()
Вывести тип можно через type()
Циклы
Массивы в lua - это таблицы (объекты), ключами которых являются числовые значения. Значения индексов идут с 1, а не с 0.
Перебор по собственным нашим индексам, которые мы добавим в таблицу можно совершить через for-i
. А пройти целиковый массив можно через for-in
.
Ветвления
Операции ветвления в lua представлены следующим образом:
- старт условия -
if
- вставка дополнительного условия -
elseif
- иначе -
else
||
и&&
выглядят какand
иor
Функции
Функция — это изолированный кусочек кода.
- Их можно вызывать в различных частях приложения.
- Функции имеют наименование, аргументы и могут возвращать значение.
Tables
Таблица в lua представляет из себя то же самое, что и объект в JS. Она хранит набор различных значений
Ключи мы можем записывать под индексами, под строчными записями, записывать через dot notation и обращаться ко всем записанным значениям таким же образом.
Модули
Модули - это удобный инструмент декомпозиции кода по разным файлам. Они нам предоставляют:
- Декомпозицию код на отдельные файлы
- Изоляцию кода для последующего переиспользования
- Повышение читабельности приложения
Создаём таблицу с нужными данными и для неё создаём функцию. Чтобы таблица не попадала в глобальный скоуп, создадим её локальной (чтобы она реально оставалась только внутри своего файла).
Саму таблицу мы экспортируем из файла через return
.
lib/mymath.lua
И далее через require
и абсолютный путь до файла мы можем получить наш экспортированный модуль
demo.lua