Wiederholung – Zahlengenerator
Teil des Abschnitts Logic & Flow der Lua-Journey von Coddy — Lektion 53 von 54.
Aufgabe
EinfachSchreiben Sie eine Funktion createNumberGenerator, die count entgegennimmt und einen String zurückgibt, der alle von einer Coroutine generierten Zahlen anzeigt.
Erstellen Sie eine Coroutine, die sequenziell Zahlen beginnend bei 1 generiert. Jedes Mal, wenn die Coroutine fortgesetzt wird, sollte sie die nächste Zahl in der Sequenz liefern (yield). Setzen Sie die Coroutine count-mal fort, um alle generierten Zahlen zu sammeln, und geben Sie diese dann als einen einzelnen String zurück, wobei jede Zahl in einer neuen Zeile steht.
Logik:
- Erstellen Sie eine Funktion, die eine Schleife verwendet, um die Zahlen 1, 2, 3 usw. mittels yield zurückzugeben.
- Umschließen Sie diese Funktion mit
coroutine.create()in einer Coroutine. - Setzen Sie die Coroutine
count-mal fort und sammeln Sie jede gelieferte Zahl. - Verknüpfen Sie alle Zahlen mit Zeilenumbruchzeichen dazwischen.
- Geben Sie den verknüpften String zurück.
Parameter:
count(number): Die Anzahl der Werte, die aus der Sequenz generiert werden sollen.
Rückgabewert: Ein String, der alle generierten Zahlen getrennt durch Zeilenumbrüche enthält (string). Format: 1\n2\n3
Probier es selbst
function createNumberGenerator(count)
-- Schreibe hier den Code
end
Alle Lektionen in Logic & Flow
1Fortgeschrittene Table-Iteration
Iterieren mit pairs()Iterieren mit ipairs()pairs() vs. ipairs()Zusammenfassung – Charakterbogen4Einführung in Metatables
Was ist eine Metatable?setmetatable & getmetatableDie __index-MetamethodeDie __newindex-MetamethodeDie __tostring-MetamethodeArithmetische Metamethoden Teil 1Arithmetische Metamethoden Teil 2Zusammenfassung – Schreibgeschützte Tabellen7Fortgeschrittene String-Manipulation
string.gsub() für ErsetzungenEinführung in String-Patternsstring.find()string.match()Iterieren mit string.gmatch()Rückblick – Log-File-Parser2Weitere Funktionen der Table-Bibliothek
table.concat()Tabellenerstellung & unpack()table.sort()Benutzerdefiniertes Sortieren mit FunktionenRückblick – Highscore-Tabelle3Fortgeschrittene Funktionskonzepte
Mehrere RückgabewerteVariadische Funktionen (...)Funktionen als First-Class ValuesAnonyme FunktionenWas ist eine Closure?Zusammenfassung – Einfacher Event Handler6Fehlerbehandlung
Die error()-FunktionGeschützte Aufrufe mit pcall()Zusammenfassung – Sichere Division9Coroutines für Anfänger
Was ist eine Coroutine?coroutine create & resumePausieren mit coroutine.yield()resume & yieldCoroutine-Status prüfenWiederholung – ZahlengeneratorWiederholung – Vektormathematik