Menu
CoddyTech

Parametri opzionali

Fa parte della sezione Introduzione a Luau del percorso Lua di Coddy. Lezione 26 di 80.

In Lua standard potevi sempre omettere gli argomenti: quelli mancanti diventavano silenziosamente nil, e dimenticarsi di gestire questo caso era una causa classica di bug. Luau rende esplicita questa possibilità: aggiungi ? al tipo di un parametro per indicare che è facoltativo.

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? si legge «string oppure nil». Chi chiama la funzione può passare una stringa o omettere del tutto l'argomento; i parametri senza ? sono obbligatori e il verificatore segnala le chiamate in cui vengono omessi.

All'interno della funzione, un parametro facoltativo potrebbe essere nil, quindi controllalo prima di usarlo: if title then ... end è il modello standard. Se salti il controllo e concateni nil a una stringa, ottieni lo stesso errore di runtime che Lua ti ha sempre dato; il verificatore di tipi ti avvisa prima.

challenge icon

Sfida

Facile

Scrivi una funzione per il profilo il cui nome visualizzato è facoltativo.

  1. Scrivi local function createUserProfile(username: string, displayName: string?): string.
  2. Restituisci `Profile: {displayName} (@{username})` quando viene fornito displayName, altrimenti `Profile: @{username}`.
  3. Stampa createUserProfile("john_doe", "John Doe") e createUserProfile("jane_smith").

Premi Run Code: l'output mostra Profile: John Doe (@john_doe) e Profile: @jane_smith.

Provalo tu

-- 1) createUserProfile(username: string, displayName: string?): string
-- 2) stampalo con e senza un nome visualizzato

Tutte le lezioni di Introduzione a Luau

Esercitati da solo: Compilatore Luau online