Menu
CoddyTech

Почему именно 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 точно подсказывает вам и вашим коллегам, что ожидает функция: не нужно гадать или разбираться в её реализации.

Расширенные инструменты разработки: поскольку редактор знает тип каждой переменной, вы получаете точное автодополнение, более безопасный рефакторинг и удобную навигацию. Введите точку после типизированного значения — и редактор покажет все доступные варианты.

challenge icon

Задание

Легко

Укажи тип number для обоих параметров calculateTotal.

  1. В первой строке замени (price, tax) на (price: number, tax: number).
  2. Оставь вызов calculateTotal(80, 8) внизу.

Нажми Run Code: результатом будет 88.

Попробуйте сами

local function calculateTotal(price, tax)
    return price + tax
end

print(calculateTotal(80, 8))

Все уроки раздела Введение в Luau

Потренируйтесь самостоятельно: Онлайн-компилятор Luau