Языки программирования

Учебник Lua с нуля для начинающих

19 уроков · 6 разделов · бесплатно, без регистрации

Lua — маленький, быстрый и удивительно мощный язык, который вы встречаете чаще, чем думаете: на нём пишут скрипты в Roblox, делают игры на движке Love2D, настраивают веб-сервер nginx и базу данных Redis. Этот курс ведёт от самых основ — что такое переменные и как запустить первую программу — до продвинутых тем: таблиц, метатаблиц, замыканий и корутин. Каждый урок объясняет не только «как», но и «зачем», с практическими примерами. К концу вы сможете читать и писать настоящие Lua-скрипты для игр и конфигов.

Курс «Lua с нуля» состоит из 6 разделов и 19 уроков: Знакомство с Lua, Переменные и типы данных, Таблицы — сердце Lua, Условия и циклы, Функции и Продвинутая Lua. Уроки идут по порядку — от основ к более сложным темам, в каждом есть объяснение с примерами, а в конце — вопросы для самопроверки. К урокам привязаны задачи с автоматической проверкой: прочитали тему — сразу закрепили её кодом.

Программа курса

  1. 1 Знакомство с Lua

    1. Что такое Lua и где она применяется

      Lua — лёгкий встраиваемый язык скриптов. Где он используется: Roblox, Love2D, nginx, Redis, World of Warcraft.

    2. Как запустить код на Lua

      Способы запустить Lua: интерпретатор lua, онлайн-песочницы, среда Roblox Studio. Структура первой программы.

    3. Вывод данных и функция print

      Как выводить данные в Lua: функция print, несколько аргументов, конкатенация строк, отладочный вывод в играх.

  2. 2 Переменные и типы данных

    1. Переменные: local и global

      Переменные в Lua: объявление через local, разница между локальными и глобальными переменными, почему всегда нужен local.

    2. Типы nil, boolean и number

      Базовые типы Lua: nil (отсутствие значения), boolean (true/false), number (числа). Функция type и истинность значений.

    3. Строки и операции над ними

      Строки в Lua: кавычки, длинные строки, длина через #, библиотека string — sub, upper, find, gsub.

  3. 3 Таблицы — сердце Lua

    1. Таблицы как массивы

      Таблицы Lua в роли массивов: создание списка, индексы с единицы, добавление элементов через table.insert, длина через #.

    2. Таблицы как словари

      Таблицы Lua как словари: пары ключ-значение, доступ через точку и скобки, перебор через pairs, проверка наличия ключа.

    3. Вложенные таблицы

      Вложенные таблицы в Lua: таблицы внутри таблиц, списки объектов, обход вложенных структур, представление данных игры.

  4. 4 Условия и циклы

    1. Условия: if, elseif, else

      Условные операторы Lua: if, elseif, else, логические операторы and/or/not, операторы сравнения, отличие ~= от !=.

    2. Циклы while и repeat

      Циклы с условием в Lua: while проверяет условие до тела, repeat-until — после. Управление через break.

    3. Циклы for: numeric и generic

      Два цикла for в Lua: numeric for со счётчиком и шагом, generic for с ipairs и pairs для перебора таблиц.

  5. 5 Функции

    1. Объявление функций и аргументы

      Функции в Lua: объявление через function, параметры и аргументы, значения по умолчанию, функции как значения.

    2. Множественные возвраты и varargs

      Уникальные возможности функций Lua: возврат нескольких значений, приём переменного числа аргументов через ... (varargs).

    3. Замыкания и область видимости

      Замыкания в Lua: вложенные функции, захват внешних переменных (upvalue), область видимости, счётчики и фабрики функций.

  6. 6 Продвинутая Lua

    1. Метатаблицы и __index: ООП на Lua

      Метатаблицы Lua и метаметод __index: как сделать ООП с классами, методами и наследованием на единственной структуре — таблице.

    2. Модули и require

      Модули в Lua: как разбить код на файлы, вернуть таблицу из модуля, подключить через require, кэширование модулей.

    3. Обработка ошибок: pcall и error

      Обработка ошибок в Lua: функция error для генерации ошибки, pcall для безопасного вызова, перехват и сообщения об ошибках.

    4. Корутины

      Корутины в Lua: кооперативная многозадачность, create, resume, yield, status. Пошаговое выполнение и генераторы.