Funktion: Task-Zusammenfassung ausgeben
Teil des Abschnitts Einführung in Luau der Lua-Journey von Coddy — Lektion 49 von 73.
Aufgabe
EinfachDein Editor enthält bereits den Typ Task, das Array tasks, addTask, completeTask und filterTasks aus den vorherigen Lektionen.
Erstelle eine Funktion namens printSummary, die einen Parameter list vom Typ {Task} entgegennimmt, nichts zurückgibt (Rückgabetyp ()) und genau eine Zeile in folgendem Format ausgibt:
{doneCount}/{total} tasks donewobei total gleich #list entspricht und doneCount angibt, wie viele Tasks done == true haben (zähle dies mit einer Schleife).
Führe anschließend das gesamte Toolkit in dieser Reihenfolge aus:
- rufe
printSummary(tasks)auf - rufe
completeTask(tasks, 2)auf - rufe
printSummary(tasks)auf - rufe
addTask(tasks, "Take a break")auf - rufe
printSummary(tasks)auf
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
-- Sammle die Aufgaben, deren done-Flag übereinstimmt, in ein neues {Task}
local function filterTasks(list: {Task}, done: boolean): {Task}
local result: {Task} = {}
for _, t in ipairs(list) do
if t.done == done then
table.insert(result, t)
end
end
return result
end
-- Schreibe hier Code
-- 1) definiere printSummary(list: {Task}): () die ausgibt
-- `{doneCount}/{total} tasks done`
-- 2) rufe printSummary auf, schließe Aufgabe 2 ab, rufe es erneut auf,
-- füge "Take a break" hinzu, rufe es ein letztes Mal auf
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