Menu
Coddy logo textTech

Типизированные массивы

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

Typed arrays — одна из самых полезных возможностей Luau для организации нескольких значений с сохранением типобезопасности.

В Lua массив — это просто table со значениями на позициях 1, 2, 3, …, и он с радостью будет одновременно хранить number, string и boolean. Luau позволяет объявить, что table должен содержать элементы только одного типа, используя синтаксис {Type}:

local numbers: {number} = {1, 2, 3, 4, 5}
local names: {string} = {"Alice", "Bob", "Charlie"}
local flags: {boolean} = {true, false, true}

Когда вы объявляете typed array, средство проверки типов Luau отслеживает, чтобы в него попадали только values объявленного типа. Вставьте string в массив {number}, и вы получите type error еще при редактировании — до того, как код вообще запустится:

local scores: {number} = {85, 90, 78}
table.insert(scores, "oops") -- ✗ ошибка типа: string не является number

Всё, что вы уже знаете о Lua tables, по-прежнему применимо: arrays индексируются с 1 (based на 1: scores[1] — это first элемент), #scores — это длина, а table.insert / table.remove работают как обычно. Аннотация добавляет безопасность, а не новое поведение во время выполнения.

challenge icon

Задание

Легко

Создайте типизированный массив с именем scores, который может содержать только числа, инициализированный значениями 85, 92 и 78.

Создайте второй типизированный массив с именем studentNames, который может содержать только строки, инициализированный значениями "Alice", "Bob" и "Charlie".

Затем выведите, каждое на отдельной строке:

  1. первую оценку
  2. количество оценок (используйте #)
  3. второе имя студента

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

-- Напишите код здесь
-- 1) объявите scores: {number} и studentNames: {string}
-- 2) выведите первый score, количество scores и второе name
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

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