Funktion: Tasks nach Status auflisten
Teil des Abschnitts Einführung in Luau der Lua-Journey von Coddy — Lektion 48 von 73.
Aufgabe
EinfachIhr Editor enthält bereits den Typ Task, das Array tasks sowie addTask und completeTask aus den vorherigen Lektionen.
Erstellen Sie eine Funktion namens filterTasks, die zwei Parameter entgegennimmt:
listvom Typ{Task}donevom Typboolean
Die Funktion sollte ein neues Array vom Typ {Task} erstellen und zurückgeben, das nur die Aufgaben enthält, deren done-flag dem Parameter entspricht.
Danach:
- speichern Sie
filterTasks(tasks, false)inpendingundfilterTasks(tasks, true)infinished - geben Sie
#pendingaus, danach dentitlejeder ausstehenden Aufgabe in einer eigenen Zeile (verwenden Sieipairs) - geben Sie
#finishedaus, danach dentitlejeder abgeschlossenen Aufgabe in einer eigenen Zeile
Probier es selbst
-- Die Form, der jede Aufgabe im Manager folgen muss
type Task = {
id: number,
title: string,
done: boolean,
}
-- Die Aufgabenliste: ein typisiertes Array von Task-Formen
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},
}
-- Erstelle eine typisierte Aufgabe mit der nächsten freien id und füge sie ein
local function addTask(list: {Task}, title: string): Task
local newTask: Task = {
id = #list + 1,
title = title,
done = false,
}
table.insert(list, newTask)
return newTask
end
-- Markiere die Aufgabe mit der gegebenen id als erledigt; melde Erfolg
local function completeTask(list: {Task}, id: number): boolean
for _, t in ipairs(list) do
if t.id == id then
t.done = true
return true
end
end
return false
end
-- Schreibe hier Code
-- 1) definiere filterTasks(list: {Task}, done: boolean): {Task}
-- 2) erstelle `pending` (done == false) und `finished` (done == true)
-- 3) gib #pending und die ausstehenden Titel aus, dann #finished und
-- die erledigten Titel
Alle Lektionen in Einführung in Luau
1Erste Schritte mit Luau
Was ist Luau?Warum Luau nutzen?Dein erster Luau-CodeTypprüfung & FehlermodiZusammenfassung: Einführung in Luau4Arbeiten mit Funktionen
Typisierung von Parametern & RückgabewertenTypisierung von anonymen FunktionenFunktionen ohne RückgabewertOptionale ParameterStandard-ParameterwerteVariadische FunktionenDefinieren von FunktionstypenZusammenfassung: Typisierte Funktionen7Projekt: Typisierter Task-Manager
Projekt: Die Task-StrukturFunktion zum Hinzufügen eines Tasks2Grundtypen
Grundlegende Typen: num, str, boolDer Typ 'any': Der AuswegDer Typ 'unknown'Nil- & optionale TypenTypinferenz in der PraxisExplizite TypannotationenZusammenfassung: Praxis zu Grundtypen5Typ-Aliase, Union-Typen und Schnittmengen-Typen
Typ-Aliase für PrimitivenUnion-TypenArbeiten mit Union-TypenLiterale TypenSchnittmengen-Typen (Intersection Types)Kombination von Typ-AliasenZusammenfassung: Fortgeschrittene Typ-Kombinationen3Typisierte Tabellen: Arrays & Maps
Typisierte ArraysHinzufügen und Lesen von ElementenWas ist ein Map-Typ?Deklarieren und Zugreifen auf MapsIterieren von TabellenGemischt-strukturierte TabellenMehrdimensionale typisierte Arraystable.unpack und VarargsZusammenfassung: Arrays und Maps