Optionale Parameter
Teil des Abschnitts Einführung in Luau der Lua-Journey von Coddy. Lektion 26 von 80.
In einfachem Lua konnten Sie Argumente immer weglassen: Die fehlenden wurden stillschweigend zu nil, und nicht daran zu denken, diesen Fall zu behandeln, war eine klassische Fehlerquelle. Luau macht diese Möglichkeit ausdrücklich: Fügen Sie dem Typ eines Parameters ? hinzu, um ihn als optional zu kennzeichnen.
function greet(name: string, title: string?): string
if title then
return `{title} {name}`
end
return `Hello, {name}`
end
print(greet("Ada")) -- Hallo, Ada
print(greet("Ada", "Dr.")) -- Dr. Adastring? bedeutet „string oder nil“. Aufrufende können eine Zeichenfolge übergeben oder das Argument ganz weglassen; Parameter ohne ? sind erforderlich, und der Prüfer kennzeichnet Aufrufe, bei denen sie fehlen.
Innerhalb der Funktion kann ein optionaler Parameter nil sein, daher sollten Sie ihn vor der Verwendung prüfen: if title then ... end ist das übliche Muster. Überspringen Sie die Prüfung und verketten nil mit einer Zeichenfolge, erhalten Sie denselben Laufzeitfehler, den Lua schon immer ausgegeben hat; der Typprüfer warnt Sie vorher.
Aufgabe
EinfachSchreibe eine Profilfunktion, bei der der Anzeigename optional ist.
- Schreibe
local function createUserProfile(username: string, displayName: string?): string. - Gib
`Profile: {displayName} (@{username})`zurück, wenndisplayNameangegeben ist, andernfalls`Profile: @{username}`. - Gib
createUserProfile("john_doe", "John Doe")undcreateUserProfile("jane_smith")aus.
Klicke auf Run Code: Die Ausgabe zeigt Profile: John Doe (@john_doe) und Profile: @jane_smith.
Probier es selbst
-- 1) createUserProfile(username: string, displayName: string?): string
-- 2) Gib es mit und ohne Anzeigenamen aus
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