Parametry opcjonalne
Część sekcji Wprowadzenie do Luau ścieżki Lua w Coddy. Lekcja 26 z 80.
W czystym Lua można było zawsze pomijać argumenty: brakujące po cichu stawały się nil, a zapominanie o obsłudze takiej sytuacji było klasycznym źródłem błędów. Luau wyraźnie zaznacza taką możliwość: dodaj ? do typu parametru, aby oznaczyć go jako opcjonalny.
function greet(name: string, title: string?): string
if title then
return `{title} {name}`
end
return `Hello, {name}`
end
print(greet("Ada")) -- Hello, Ada
print(greet("Ada", "Dr.")) -- Dr. Adastring? oznacza „string lub nil”. Wywołujący mogą przekazać ciąg znaków lub całkowicie pominąć argument; parametry bez ? są wymagane, a sprawdzarka zgłasza wywołania, w których je pominięto.
Wewnątrz funkcji opcjonalny parametr może mieć wartość nil, więc sprawdź go, zanim go użyjesz: if title then ... end to standardowy wzorzec. Pomiń sprawdzenie i połącz nil z ciągiem znaków, a otrzymasz ten sam błąd w czasie działania, który Lua zawsze powoduje; sprawdzarka typów ostrzega cię wcześniej.
Wyzwanie
ŁatwyNapisz funkcję profilu, w której wyświetlana nazwa jest opcjonalna.
- Napisz
local function createUserProfile(username: string, displayName: string?): string. - Zwróć
`Profile: {displayName} (@{username})`, gdy podanodisplayName, w przeciwnym razie zwróć`Profile: @{username}`. - Wyświetl
createUserProfile("john_doe", "John Doe")icreateUserProfile("jane_smith").
Naciśnij Uruchom kod: na wyjściu pojawią się Profile: John Doe (@john_doe) i Profile: @jane_smith.
Spróbuj swoich sił
-- 1) createUserProfile(username: string, displayName: string?): string
-- 2) wypisz to z nazwą wyświetlaną i bez niej
Wszystkie lekcje w sekcji Wprowadzenie do Luau
1Pierwsze kroki z Luau
Czym jest Luau?Dlaczego warto używać Luau?Twój pierwszy kod w LuauSprawdzanie typów i tryby błędówPodsumowanie: Wprowadzenie do Luau4Praca z funkcjami
Typowanie parametrów i wartości zwracanychTypowanie funkcji anonimowychFunkcje niezwracające wartościParametry opcjonalneDomyślne wartości parametrówWartości domyślne dla typów BooleanFunkcje wariadyczneDefiniowanie typów funkcjiPodsumowanie: funkcje z typami2Podstawowe typy
Number, String i BooleanTyp 'any': wyjście awaryjneTyp 'unknown'Nil i typy opcjonalneInferencja typów w praktyceJawne adnotacje typówPowtórka: ćwiczenia z podstawowych typów5Aliasy, typy sumy i przekroju
Aliasy typów dla typów prostychTypy sumyPraca z typami sumyTypy literałoweTypy przekrojuŁączenie aliasów typówPodsumowanie: zaawansowane kombinacje typów3Typowane tabele: tablice i mapy
Typowane tabliceDodawanie i odczytywanie elementówCzym jest typ mapy?Deklarowanie i uzyskiwanie dostępu do mapIterowanie po tabelachTabele o mieszanej strukturzeOdczytywanie siatkiTworzenie siatkitable.unpackPodsumowanie: tablice i mapyPoćwicz samodzielnie: Kompilator Luau online