Standardwerte für boolesche Werte
Teil des Abschnitts Einführung in Luau der Lua-Journey von Coddy. Lektion 28 von 80.
Eine Einschränkung kennst du bereits aus Lua: or ersetzt auch false. Bei einem boolean?-Parameter, der standardmäßig true sein soll, macht flag = flag or true aus einem ausdrücklich angegebenen false ein true, denn false or true ist true:
local function sendAlert(message: string, loud: boolean?)
loud = loud or true -- sendAlert("Hi", false) erhält trotzdem true
print(message, loud)
endVerwende stattdessen eine explizite nil-Prüfung. So wird der Standardwert nur eingesetzt, wenn das Argument weggelassen wurde:
local function sendAlert(message: string, loud: boolean?)
if loud == nil then
loud = true
end
print(message, loud)
end
sendAlert("Hi") -- Hi true
sendAlert("Hi", false) -- Hi falseFür Zeichenketten und Zahlen ist or sicher, da nur nil und false falsy sind.
Aufgabe
EinfachGib einem booleschen Parameter den Standardwert true, den ein false nicht aufheben kann.
- Schreibe
local function shippingCost(weight: number, insured: boolean?): number. - Beginne die Funktion mit
if insured == nil then insured = true end. - Gib
weight * 0.5 + 2zurück, wenninsuredtrue ist, andernfallsweight * 0.5. - Gib
shippingCost(4)undshippingCost(4, false)aus.
Klicke auf Run Code: Die Ausgabe endet mit 4 und 2.
Probier es selbst
-- Standardwert mithilfe des `or`-Idioms
local function calculateTax(price: number, rate: number?): number
rate = rate or 0.05
return price * rate
end
print(calculateTax(100))
print(calculateTax(200, 0.08))
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