Почему именно Luau?
Часть раздела Введение в Luau путешествия по Lua на Coddy. Урок 2 из 80.
Система типов Luau предлагает три основных преимущества, которые делают разработку безопаснее и эффективнее.
Выявление ошибок на раннем этапе: проверка типов анализирует ваш код во время редактирования, ещё до его запуска. Рассмотрим классическую ошибку Lua: передача nil туда, где ожидается число:
-- Lua: об этом ничто не предупреждает
local function calculateTotal(price, tax)
return price + tax
end
print(calculateTotal(nil, 0.1))
-- ✗ ошибка во время выполнения: попытка выполнить арифметическую операцию с nilВ обычном Lua сбой происходит только тогда, когда этот ошибочный вызов наконец выполняется — возможно, прямо на глазах у ваших пользователей. Хуже того, иногда Lua полностью скрывает ошибку: "50" + 0.1 незаметно преобразует строку и возвращает 50.1… пока однажды строка не окажется нечисловой. С аннотациями Luau ошибка обнаруживается сразу:
local function calculateTotal(price: number, tax: number)
return price + tax
end
calculateTotal(nil, 0.1) -- ✗ ошибка типа при редактировании: nil — не числоУлучшенная читаемость кода: аннотации служат документацией. price: number точно подсказывает вам и вашим коллегам, что ожидает функция: не нужно гадать или разбираться в её реализации.
Расширенные инструменты разработки: поскольку редактор знает тип каждой переменной, вы получаете точное автодополнение, более безопасный рефакторинг и удобную навигацию. Введите точку после типизированного значения — и редактор покажет все доступные варианты.
Задание
ЛегкоУкажи тип number для обоих параметров calculateTotal.
- В первой строке замени
(price, tax)на(price: number, tax: number). - Оставь вызов
calculateTotal(80, 8)внизу.
Нажми Run Code: результатом будет 88.
Попробуйте сами
local function calculateTotal(price, tax)
return price + tax
end
print(calculateTotal(80, 8))
Все уроки раздела Введение в Luau
1Начало работы с Luau
Что такое Luau?Почему именно Luau?Ваш первый код на LuauПроверка типов и режимы ошибокИтоги: Введение в Luau4Работа с функциями
Типизация параметров и возвращаемых значенийТипизация анонимных функцийФункции без возвращаемого значенияНеобязательные параметрыЗначения параметров по умолчаниюЗначения по умолчанию для булевых параметровФункции с переменным числом аргументовОпределение типов функцийПовторение: типизированные функции2Основные типы
Число, строка и булево значениеТип 'any': запасной выходТип 'unknown'Nil и опциональные типыВывод типов на практикеЯвные аннотации типовПовторение: практика с основными типами5Псевдонимы, объединения и пересечения
Псевдонимы типов для примитивовТипы объединения (Union)Работа с типами объединенияЛитеральные типыТипы пересечения (Intersection)Комбинирование псевдонимов типовИтоги: Сложные комбинации типов3Типизированные таблицы: массивы и отображения
Типизированные массивыДобавление и чтение элементовЧто такое тип отображения?Объявление и доступ к отображениямПеребор таблицТаблицы смешанной структурыЧтение сеткиСоздание сеткиtable.unpackПовторение: массивы и отображенияПотренируйтесь самостоятельно: Онлайн-компилятор Luau