Типизированные массивы
Часть раздела Введение в Luau путешествия по Lua на Coddy. Урок 13 из 73.
Типизированные arrays — одна из самых полезных возможностей Luau для организации нескольких значений с одновременным обеспечением безопасности типов.
В Lua массив — это всего лишь таблица со значениями в позициях 1, 2, 3, …, и в ней без проблем могут одновременно храниться number, string и boolean. Luau позволяет объявить, что таблица должна содержать элементы только одного типа, используя синтаксис {Type}:
local numbers: {number} = {1, 2, 3, 4, 5}
local names: {string} = {"Alice", "Bob", "Charlie"}
local flags: {boolean} = {true, false, true}Когда вы объявляете типизированный массив, проверка типов Luau гарантирует, что в него попадут только значения объявленного типа. Вставьте string в массив {number}, и во время редактирования вы получите ошибку типа, ещё до запуска кода:
local scores: {number} = {85, 90, 78}
table.insert(scores, "oops") -- ✗ ошибка типа: string is not a numberВсё, что вы уже знаете о таблицах Lua, по-прежнему применимо: arrays имеют индексацию с 1 (scores[1] — первый элемент), #scores — это длина, а table.insert / table.remove работают как обычно. Аннотация добавляет безопасность, а не новое поведение во время выполнения.
Задание
ЛегкоCreate типизированный массив с именем scores, который может содержать только значения типа number, инициализированный значениями 85, 92 и 78.
Create второй типизированный массив с именем studentNames, который может содержать только строки, инициализированный значениями "Alice", "Bob" и "Charlie".
Затем выведи каждое значение в отдельной строке:
- первый элемент scores
- количество элементов scores (используй
#) - второе имя студента
Попробуйте сами
-- Напишите код здесь
-- 1) объявите scores: {number} и studentNames: {string}
-- 2) выведите первый score, количество scores и второе имя
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Введение в 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