Standardwerte für Parameter
Teil des Abschnitts Einführung in Luau der Lua-Journey von Coddy. Lektion 27 von 80.
Optionale Parameter bedeuten, dass du mit einem nil umgehen musst. Oft ist das, was du wirklich möchtest, ein Ersatzwert: „Wenn der Aufrufer nichts angegeben hat, nimm X an.“ Luau hat keine Syntax für Standardwerte in der Signatur (es gibt kein greeting: string = "Hello"); stattdessen verwendest du das klassische Lua-Idiom, jetzt mit Typen:
function greet(name: string, greeting: string?): string
greeting = greeting or "Hello"
return `{greeting}, {name}`
end
print(greet("Alice")) -- Hello, Alice
print(greet("Alice", "Howdy")) -- Howdy, AliceDer Parameter ist als optional gekennzeichnet (string?), und die erste Zeile des Funktionsrumpfs ersetzt nil durch den Standardwert. Das funktioniert, weil nil als falsch ausgewertet wird: nil or "Hello" ergibt "Hello". Nach dieser Zeile weiß der Prüfer, dass greeting nicht mehr nil sein kann.
Aufgabe
EinfachGib einem optionalen Parameter einen Standardwert.
- Schreibe
local function calculateTax(price: number, rate: number?): number. - Die erste Zeile lautet
rate = rate or 0.05; gib dannprice * ratezurück. - Gib
calculateTax(100)undcalculateTax(200, 0.08)aus.
Klicke auf Run Code: Die Ausgabe zeigt 5, dann 16.
Probier es selbst
-- 1) calculateTax(price: number, rate: number?): number
-- Standardwert für rate 0.05 mit dem `or`-Idiom
-- 2) calculateTax(100) und calculateTax(200, 0.08) ausgeben
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 Luau4Mit Funktionen arbeiten
Parameter und Rückgabewerte typisierenAnonyme Funktionen typisierenFunktionen ohne RückgabewertOptionale ParameterStandardwerte für ParameterStandardwerte für boolesche WerteFunktionen mit variabler ParameteranzahlFunktionstypen definierenRückblick: typisierte Funktionen7Projekt: Typisierter Aufgabenmanager
Projekt: Die AufgabenstrukturFunktion zum Hinzufügen einer Aufgabe2Grundlegende Typen
Zahl, String und BooleanDer Typ „any“: NotausgangDer Typ „unknown“Nil- und optionale TypenTypinferenz in der PraxisExplizite TypannotationenRückblick: Übung zu grundlegenden Typen5Typ-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 ArraysElemente hinzufügen und auslesenWas ist ein Map-Typ?Maps deklarieren und auf Elemente zugreifenTabellen durchlaufenTabellen mit gemischten FormenEin Raster auslesenEin Raster erstellentable.unpackRückblick: Arrays und MapsÜbe selbstständig: Online-Luau-Compiler