Menu
CoddyTech

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. Ada

string? 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.

challenge icon

Wyzwanie

Łatwy

Napisz funkcję profilu, w której wyświetlana nazwa jest opcjonalna.

  1. Napisz local function createUserProfile(username: string, displayName: string?): string.
  2. Zwróć `Profile: {displayName} (@{username})`, gdy podano displayName, w przeciwnym razie zwróć `Profile: @{username}`.
  3. Wyświetl createUserProfile("john_doe", "John Doe") i createUserProfile("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

Poćwicz samodzielnie: Kompilator Luau online