Типизированные массивы
Часть раздела Введение в Luau путешествия по Lua на Coddy. Урок 13 из 80.
Типизированные массивы — одна из самых полезных возможностей Luau для организации нескольких значений с сохранением безопасности типов.
В Lua массив — это просто таблица со значениями в позициях 1, 2, 3, …, и в ней вполне могут одновременно храниться число, строка и логическое значение. В Luau можно объявить, что таблица должна содержать элементы только одного типа, используя синтаксис {Type}:
local numbers: {number} = {1, 2, 3, 4, 5}
local names: {string} = {"Alice", "Bob", "Charlie"}
local flags: {boolean} = {true, false, true}Когда ты объявляешь типизированный массив, проверка типов Luau гарантирует, что в него попадут только значения объявленного типа. Если вставить строку в массив {number}, при редактировании появится ошибка типа — ещё до запуска кода:
local scores: {number} = {85, 90, 78}
table.insert(scores, "oops") -- ✗ ошибка типа: строка не является числомВсё, что ты уже знаешь о таблицах Lua, по-прежнему применимо: массивы имеют индексацию с 1 (scores[1] — первый элемент), #scores — это длина, а table.insert / table.remove работают как обычно. Аннотация повышает безопасность, но не меняет поведение во время выполнения.
Задание
ЛегкоХраните оценки и имена в типизированных массивах.
- Объявите
local scores: {number} = {85, 92, 78}. - Объявите
local studentNames: {string} = {"Alice", "Bob", "Charlie"}. - Выведите
scores[1],#scoresиstudentNames[2], по одному в строке.
Нажмите «Выполнить код»: вывод содержит 85, 3 и Bob.
Попробуйте сами
-- 1) объявите scores: {number} и studentNames: {string}
-- 2) выведите первую оценку, количество оценок и второе имя
Все уроки раздела Введение в Luau
1Начало работы с Luau
Что такое Luau?Почему именно Luau?Ваш первый код на LuauПроверка типов и режимы ошибокИтоги: Введение в Luau4Работа с функциями
Типизация параметров и возвращаемых значенийТипизация анонимных функцийФункции без возвращаемого значенияНеобязательные параметрыЗначения параметров по умолчаниюЗначения по умолчанию для булевых параметровФункции с переменным числом аргументовОпределение типов функцийПовторение: типизированные функции2Основные типы
Число, строка и булево значениеТип 'any': запасной выходТип 'unknown'Nil и опциональные типыВывод типов на практикеЯвные аннотации типовПовторение: практика с основными типами5Псевдонимы, объединения и пересечения
Псевдонимы типов для примитивовТипы объединения (Union)Работа с типами объединенияЛитеральные типыТипы пересечения (Intersection)Комбинирование псевдонимов типовИтоги: Сложные комбинации типов3Типизированные таблицы: массивы и отображения
Типизированные массивыДобавление и чтение элементовЧто такое тип отображения?Объявление и доступ к отображениямПеребор таблицТаблицы смешанной структурыЧтение сеткиСоздание сеткиtable.unpackПовторение: массивы и отображенияПотренируйтесь самостоятельно: Онлайн-компилятор Luau