Основы языка Lua
Lua — это компактный, быстрый, встраиваемый интерпретируемый язык программирования высокого уровня, разработанный с акцентом на простоту, гибкость и эффективность.
Рекомендации по разработке на Lua
Набор советов, правил, принципов и обычаев в разработке на этом языке.
Простые приложения на Lua
Простые приложения на Lua — скрипты, файлы, JSON и встраивание.
Экосистема приложений на Lua
LÖVE (Love2D) - 2D-движок для создания игр на Lua, кроссплатформенный, имеет простой API (love.load(), love.update(dt), love.draw()), используется инди-разработчиками и для обучения.
История языка Lua
Lua 5.1 (2006) — стабильная, самая распространённая версия. Используется в World of Warcraft, Nginx, многих движках.
Первая программа на Lua
Гайд по установке и настройке с написанием первой программы и её запуском.
Синтаксис и пунктуация в Lua
Кавычки, точки, запятые, скобки и прочие знаки препинания.
Ключевые слова языка Lua
Lua использует двадцать два зарезервированных ключевых слова. Все они являются частью синтаксиса языка и недоступны для использования в качестве идентификаторов.
Встроенные функции и стандартная библиотека Lua
Набор функций, которые включены в стандартную библиотеку языка.
Типы данных и объявление переменных в Lua
Типизация, набор правил определения типа данных значений языка.
Управляющие конструкции и циклы в Lua
Lua предоставляет две формы условной конструкции — if-then-else и её компактный аналог через and/or, хотя последний используется с осторожностью из-за семантических различий.
Функции, замыкания и анонимные функции
Анонимные функции (или лямбда-выражения) — это функции без имени, которые могут быть определены inline. Они особенно полезны при передаче в качестве аргументов или при создании замыканий.
Объектно-ориентированное программирование в Lua
ООП в Lua - моделирование объектов через таблицы, метатаблицы и идиомы объектного стиля без встроенных классов.
Работа со строками, таблицами и файлами
Работа со строками, таблицами и файлами в Lua - основные операции с данными и стандартная библиотека `io`.
Обработка ошибок в Lua
Обработка ошибок в Lua - использование `pcall` и `xpcall`, трассировка причин и устойчивое поведение скриптов.
Метатаблицы и метаметоды
Метатаблицы и метаметоды в Lua - расширение поведения таблиц и построение выразительных абстракций.
Модули и организация кода
Модуль в Lua — это любой файл, возвращающий таблицу, которая представляет собой его публичный интерфейс.
Работа с памятью и сборка мусора
Управление памятью в куче полностью делегировано сборщику мусора. Все объекты в куче управляются по ссылкам — переменные содержат не сами объекты, а ссылки на них.
Асинхронность и кооперативная многозадачность
Асинхронность и кооперативная многозадачность в Lua - корутины, планирование задач и управление ожиданиями.
Архитектура выполнения и встраиваемость
Архитектура выполнения Lua и встраиваемость - легкое ядро, интеграция в приложения и управление жизненным циклом VM.
Luau - типизированный диалект Lua от Roblox
Luau - типизированный диалект Lua для Roblox с акцентом на производительность и удобство командной разработки.
Справочник по Lua
number — числовой тип. По умолчанию представляет собой число с плавающей точкой двойной точности (double). В некоторых сборках может быть целочисленным (long long) или комбинированным.
Lua и Luau — итоги
Итоги раздела «Lua и Luau» — FAQ и краткие ответы по теме.
Lua и Luau — чек-лист
Чек-лист раздела «Lua и Luau» — вопросы для самопроверки.
Lua и Luau — о разделе
Раздел охватывает классический Lua (в материалах ориентир — Lua 5.4) и Luau (диалект Roblox на базе Lua 5.1).