Menu
CoddyTech

Встроенные аннотации структур

Часть раздела Введение в Luau путешествия по Lua на Coddy. Урок 39 из 80.

В Lua ты уже давно используешь таблицы как записи: local user = {name = "Ana", age = 20}. Ничто не мешает тебе неправильно написать имя поля, забыть его или сохранить строку там, где должно быть число. Ты узнаешь об этом, только когда запустится код.

Luau позволяет описать форму такой таблицы прямо в объявлении, перечислив каждое поле и его тип в фигурных скобках:

local user: {name: string, age: number} = {
    name = "Ana",
    age = 20,
}

Сравни это с уже знакомыми тебе типами таблиц: {number} описывает массив, а {[string]: number} — отображение с любыми строковыми ключами. Форма задаётся точнее. Она называет каждое поле отдельно и задаёт для каждого поля собственный тип.

После объявления формы проверка типов сверяет с ней таблицу, пока ты редактируешь код. Отсутствующее поле или значение неправильного типа будет отмечено ещё до запуска кода:

local user: {name: string, age: number} = {
    name = "Ana",
    age = "twenty", -- ✗ ошибка типа: string не является числом
}

Как и всегда, аннотация не добавляет поведения во время выполнения: таблица остаётся обычной таблицей Lua. Встроенные формы отлично подходят для разовых структур, которые ты не планируешь использовать повторно; в следующем уроке ты дашь формам имя.

challenge icon

Задание

Легко

Опиши запись о студенте прямо при её объявлении.

  1. Объяви local student: {name: string, studentId: number} = {name = "Sarah Johnson", studentId = 12345}.
  2. Выведи student.name, затем student.studentId.

Нажми «Выполнить код»: в выводе появятся Sarah Johnson и 12345.

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

-- 1) объявите student со встроенной аннотацией структуры
-- 2) выведите его name, затем studentId

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

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