Функция для добавления задачи
Часть раздела Введение в Luau путешествия по Lua на Coddy — урок 46 из 73.
Задание
ЛегкоВаш редактор уже содержит тип Task и массив tasks из предыдущего урока.
Создайте функцию с именем addTask, которая принимает два параметра:
listтипа{Task}titleтипаstring
Функция должна:
- создать новый
Task, у которогоidравен#list + 1,titleравен переданному заголовку, а флагdoneравенfalse - вставить его в
listс помощьюtable.insert - вернуть новую задачу (тип возвращаемого значения
Task)
Затем вызовите addTask(tasks, "Review the code"), сохраните результат в переменную с именем added и выведите на печать, каждое на отдельной строке:
- количество задач, находящихся сейчас в
tasks added.idadded.titleadded.done
Попробуйте сами
-- Форма, которой должна соответствовать каждая задача в менеджере
type Task = {
id: number,
title: string,
done: boolean,
}
-- Список задач: типизированный массив форм Task
local tasks: {Task} = {
{id = 1, title = "Learn Luau types", done = false},
{id = 2, title = "Build a task manager", done = false},
{id = 3, title = "Write tests", done = true},
}
-- Напишите код здесь
-- 1) определите addTask(list: {Task}, title: string): Task
-- 2) call it with tasks and "Review the code", store the result in `added`
-- 3) выведите #tasks, затем added.id, added.title и added.done
Все уроки раздела Введение в Luau
1Начало работы с Luau
Что такое Luau?Почему именно Luau?Ваш первый код на LuauПроверка типов и режимы ошибокИтоги: Введение в Luau4Работа с функциями
Типизация параметров и возвращаемых значенийТипизация анонимных функцийФункции, ничего не возвращающиеНеобязательные параметрыЗначения параметров по умолчаниюФункции с переменным числом аргументовОпределение типов функцийИтоги: типизированные функции7Проект: Типизированный менеджер задач
Проект: Структура задачиФункция для добавления задачи2Базовые типы
Основные типы: num, str, boolТип 'any': лазейка в типизацииТип 'unknown'Nil и опциональные типыВывод типов на практикеЯвные аннотации типовИтоги: практика по базовым типам5Псевдонимы, объединения и пересечения
Псевдонимы типов для примитивовТипы объединения (Union)Работа с типами объединенияЛитеральные типыТипы пересечения (Intersection)Комбинирование псевдонимов типовИтоги: Сложные комбинации типов3Типизированные таблицы: Массивы и Map-словари
Типизированные массивыДобавление и чтение элементовЧто такое тип Map?Объявление и доступ к Map-словарямИтерация по таблицамТаблицы смешанной формыМногомерные типизированные массивыtable.unpack и VarargsИтоги: Массивы и Map-словари