Добавление и чтение элементов
Часть раздела Введение в 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, прежде чем использовать его, если не уверен, что оно существует.
Задание
ЛегкоУвеличивай и сокращай типизированный список перемещений.
- Объяви
local moves: {string} = {"jump", "run"}. - Добавь в конец
"duck"с помощьюtable.insert, затем вставь"crawl"на позицию 1. - Сохрани
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
1Начало работы с Luau
Что такое Luau?Почему именно Luau?Ваш первый код на LuauПроверка типов и режимы ошибокИтоги: Введение в Luau4Работа с функциями
Типизация параметров и возвращаемых значенийТипизация анонимных функцийФункции без возвращаемого значенияНеобязательные параметрыЗначения параметров по умолчаниюЗначения по умолчанию для булевых параметровФункции с переменным числом аргументовОпределение типов функцийПовторение: типизированные функции2Основные типы
Число, строка и булево значениеТип 'any': запасной выходТип 'unknown'Nil и опциональные типыВывод типов на практикеЯвные аннотации типовПовторение: практика с основными типами5Псевдонимы, объединения и пересечения
Псевдонимы типов для примитивовТипы объединения (Union)Работа с типами объединенияЛитеральные типыТипы пересечения (Intersection)Комбинирование псевдонимов типовИтоги: Сложные комбинации типов3Типизированные таблицы: массивы и отображения
Типизированные массивыДобавление и чтение элементовЧто такое тип отображения?Объявление и доступ к отображениямПеребор таблицТаблицы смешанной структурыЧтение сеткиСоздание сеткиtable.unpackПовторение: массивы и отображенияПотренируйтесь самостоятельно: Онлайн-компилятор Luau