Menu
Coddy logo textTech

Добавление и чтение элементов

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

Вы уже увеличиваете и уменьшаете таблицы Lua с помощью table.insert и table.remove — обе функции работают точно так же с типизированными массивами. Разница заключается в том, что Luau теперь проверяет то, что вы вставляете: добавление строки в массив {number} отмечается прямо во время ввода, а не обнаруживается сбитым с толку игроком во время выполнения.

local queue: {string} = {"save", "load"}
table.insert(queue, "quit")      -- добавить в конец
table.insert(queue, 1, "help")   -- вставить в позицию 1, сдвигая остальные
local last = table.remove(queue) -- удаляет И возвращает последний элемент

table.remove(t) извлекает последний элемент и возвращает его вам; table.remove(t, 1) удаляет первый элемент и сдвигает все остальные вниз. Поскольку массив имеет тип {string}, Luau знает, что возвращаемое значение — это строка.

Чтение так же снисходительно, как и в обычном Lua: индекс, ничего не содержащий — queue[0], queue[-1] или любой другой за пределами #queue — тихо вычисляется в nil. Ошибка не возникает, поэтому делайте check на nil перед использованием значения, в существовании которого вы не уверены.

Ещё один инструмент в ваш арсенал: table.freeze(t) делает таблицу доступной только для чтения во время выполнения — любая последующая попытка изменить её вызывает ошибку. Это решение Luau для константных данных (конфигураций, фиксированных списков уровней), которые никогда не должны меняться после создания.

challenge icon

Задание

Легко

Создайте типизированный массив queue: {string}, инициализированный значениями "save" и "load". Затем:

  1. добавьте "quit" с помощью table.insert
  2. вставьте "help" в позицию 1
  3. удалите последнюю команду с помощью table.remove, сохранив возвращенное значение

В завершение выведите на экран, каждое с новой строки:

  1. удаленную команду
  2. сколько команд осталось
  3. первую команду в очереди
  4. queue[10] — слот, который ничего не содержит

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

-- Напишите код здесь
-- 1) объявите очередь: {string} с "save" и "load"
-- 2) добавьте "quit", вставьте "help" в позицию 1
-- 3) удалите последнюю команду, затем выведите четыре значения
quiz iconПроверьте себя

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

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