Zusammenfassung – Sichere Division
Teil des Abschnitts Logic & Flow der Lua-Journey von Coddy — Lektion 34 von 54.
Aufgabe
EinfachSchreiben Sie eine Funktion safeDivide, die a und b entgegennimmt und das Ergebnis der Division von a durch b oder eine Fehlermeldung zurückgibt, falls die Division fehlschlägt.
Die Funktion sollte pcall() verwenden, um die Divisionsoperation sicher auszuführen. Erstellen Sie eine innere Funktion, welche die Division durchführt und einen Fehler auslöst, wenn b gleich Null ist, und umschließen Sie diese dann mit pcall(), um etwaige Fehler abzufangen.
Logik:
- Erstellen Sie eine innere Funktion, die prüft, ob
bgleich 0 ist - Wenn
bgleich 0 ist, rufen Sieerror("Cannot divide by zero")auf - Andernfalls geben Sie
a / bzurück - Verwenden Sie
pcall(), um die innere Funktion auszuführen - Wenn erfolgreich, geben Sie
"Result: "gefolgt vom Divisionsergebnis zurück - Wenn ein Fehler auftritt, geben Sie
"Error: "gefolgt von der Fehlermeldung zurück
Parameter:
a(Zahl): Der Dividendb(Zahl): Der Divisor
Rückgabewert: Ein String, der entweder "Result: " gefolgt vom Divisionsergebnis oder "Error: " gefolgt von der Fehlermeldung (String) enthält
Probier es selbst
function safeDivide(a, b)
-- 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 Division