Функция: Добавление элементов
Часть раздела Введение в Luau путешествия по Lua на Coddy — урок 64 из 73.
Задание
ЛегкоРасширьте свой проект из предыдущего урока (сохраните тип Item<T>).
- Напишите обобщенную функцию
addItem<T>(inventory: {Item<T>}, name: string, data: T): Item<T>, которая создает предмет сid = #inventory + 1, вставляет его вinventoryс помощьюtable.insertи возвращает его. - Создайте пустой типизированный массив
weaponsтипа{Item<{damage: number}>}. - Используйте
addItem, чтобы добавить"Iron Sword"с{damage = 25}, сохранив результат вsword. - Используйте
addItem, чтобы добавить"Fire Axe"с{damage = 40}, сохранив результат вaxe.
Затем выведите на экран, каждое значение с новой строки:
#weaponssword.idsword.nameaxe.idweapons[2].data.damage
Попробуйте сами
-- Из предыдущего урока
type Item<T> = {
id: number,
name: string,
data: T,
}
-- Напишите код здесь
-- 1) addItem<T>(inventory: {Item<T>}, name: string, data: T): Item<T>
-- 2) создайте массив weapons, добавьте Iron Sword и Fire Axe
-- 3) выведите пять запрошенных значений
Все уроки раздела Введение в Luau
1Начало работы с Luau
Что такое Luau?Почему именно Luau?Ваш первый код на LuauПроверка типов и режимы ошибокИтоги: Введение в Luau4Работа с функциями
Типизация параметров и возвращаемых значенийТипизация анонимных функцийФункции, ничего не возвращающиеНеобязательные параметрыЗначения параметров по умолчаниюФункции с переменным числом аргументовОпределение типов функцийИтоги: типизированные функции7Проект: Типизированный менеджер задач
Проект: Структура задачиФункция для добавления задачи10Проект: Обобщенный инвентарь
Проект: Элемент инвентаряФункция: Добавление элементов2Базовые типы
Основные типы: num, str, boolТип 'any': лазейка в типизацииТип 'unknown'Nil и опциональные типыВывод типов на практикеЯвные аннотации типовИтоги: практика по базовым типам5Псевдонимы, объединения и пересечения
Псевдонимы типов для примитивовТипы объединения (Union)Работа с типами объединенияЛитеральные типыТипы пересечения (Intersection)Комбинирование псевдонимов типовИтоги: Сложные комбинации типов3Типизированные таблицы: Массивы и Map-словари
Типизированные массивыДобавление и чтение элементовЧто такое тип Map?Объявление и доступ к Map-словарямИтерация по таблицамТаблицы смешанной формыМногомерные типизированные массивыtable.unpack и VarargsИтоги: Массивы и Map-словари