Что такое Luau?
Часть раздела Введение в Luau путешествия по Lua на Coddy. Урок 1 из 73.
Luau — это язык программирования, созданный в Roblox, который развивает уже знакомый вам Lua, добавляя постепенную статическую типизацию. Представьте его как Lua с дополнительным уровнем безопасности и инструментами разработки. Он используется в миллионах игр и других проектов Roblox и имеет открытый исходный код с 2021 года.
Ключевая идея заключается в том, что Luau является надмножеством Lua 5.1. Любой valid код Lua 5.1 также является valid кодом Luau: вы можете взять скрипт, написанный в предыдущих разделах, и запустить его как Luau без изменений.
Главное, что Luau добавляет поверх этого, — это type annotation. annotation объявляет, данные какого вида должна хранить переменная: string, number, логическое значение или таблицу, — благодаря чему ошибки можно обнаружить ещё до запуска кода:
-- Lua (also valid Luau)
local message = "Hello World"
-- Luau with a type annotation
local message: string = "Hello World"Слово постепенная имеет значение: annotation необязательны. Вы можете указать type для одной переменной, одной функции или целого файла: нетипизированный код в стиле Lua продолжает работать, пока вы добавляете типы в удобном для вас темпе.
В результате вы получаете более совершенные инструменты редактора, более читаемый код и защиту от тех видов ошибок, которые обычный Lua обнаруживает только во время выполнения программы.
Попробуйте сами
В этом уроке нет задания по программированию.
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Введение в Luau
1Начало работы с Luau
Что такое Luau?Почему именно Luau?Ваш первый код на LuauПроверка типов и режимы ошибокИтоги: Введение в Luau4Работа с функциями
Типизация параметров и возвращаемых значенийТипизация анонимных функцийФункции, ничего не возвращающиеНеобязательные параметрыЗначения параметров по умолчаниюФункции с переменным числом аргументовОпределение типов функцийИтоги: типизированные функции2Базовые типы
Основные типы: num, str, boolТип 'any': лазейка в типизацииТип 'unknown'Nil и опциональные типыВывод типов на практикеЯвные аннотации типовИтоги: практика по базовым типам5Псевдонимы, объединения и пересечения
Псевдонимы типов для примитивовТипы объединения (Union)Работа с типами объединенияЛитеральные типыТипы пересечения (Intersection)Комбинирование псевдонимов типовИтоги: Сложные комбинации типов3Типизированные таблицы: Массивы и Map-словари
Типизированные массивыДобавление и чтение элементовЧто такое тип Map?Объявление и доступ к Map-словарямИтерация по таблицамТаблицы смешанной формыМногомерные типизированные массивыtable.unpack и VarargsИтоги: Массивы и Map-словариПотренируйтесь самостоятельно: Онлайн-компилятор Lua