Menu
CoddyTech

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

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

Ты уже добавляешь и удаляешь элементы в таблицах 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. Ошибка не возникает, поэтому проверяй значение на nil, прежде чем использовать его, если не уверен, что оно существует.

challenge icon

Задание

Легко

Увеличивай и сокращай типизированный список перемещений.

  1. Объяви local moves: {string} = {"jump", "run"}.
  2. Добавь в конец "duck" с помощью table.insert, затем вставь "crawl" на позицию 1.
  3. Сохрани table.remove(moves) в local removed, затем выведи removed, #moves, moves[1] и moves[10].

Нажми «Выполнить код»: результатом будут duck, 3, crawl и nil.

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

-- 1) объявите moves: {string} со значениями "jump" и "run"
-- 2) добавьте в конец "duck", вставьте "crawl" в позицию 1
-- 3) удалите последний элемент из moves, затем выведите четыре значения

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

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