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. Adastring? 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.
Sfida
FacileScrivi una funzione per il profilo il cui nome visualizzato è facoltativo.
- Scrivi
local function createUserProfile(username: string, displayName: string?): string. - Restituisci
`Profile: {displayName} (@{username})`quando viene fornitodisplayName, altrimenti`Profile: @{username}`. - Stampa
createUserProfile("john_doe", "John Doe")ecreateUserProfile("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
1Per iniziare con Luau
Che cos'è Luau?Perché usare Luau?Il tuo primo codice LuauVerifica dei tipi e modalità di erroreRiepilogo: introduzione a Luau4Lavorare con le funzioni
Tipizzare parametri e valori restituitiTipizzare le funzioni anonimeFunzioni che non restituiscono nullaParametri opzionaliValori predefiniti dei parametriValori predefiniti per i booleaniFunzioni variadicheDefinire i tipi di funzioneRiepilogo: funzioni tipizzate7Progetto: Gestore di attività tipizzato
Progetto: La struttura di un'attivitàFunzione per aggiungere un'attività2Tipi fondamentali
Numero, stringa e booleanoIl tipo 'any': una via di fugaIl tipo 'unknown'Tipi nil e opzionaliL’inferenza dei tipi in praticaAnnotazioni esplicite dei tipiRipasso: esercizi sui tipi fondamentali5Alias, unioni e intersezioni
Alias di tipo per i primitiviTipi unioneLavorare con i tipi unioneTipi letteraliTipi intersezioneCombinare gli alias di tipoRiepilogo: combinazioni avanzate di tipi3Tabelle tipizzate: array e mappe
Array tipizzatiAggiungere e leggere elementiChe cos'è un tipo map?Dichiarare e accedere alle mappeIterare sulle tabelleTabelle con forme misteLeggere una grigliaCreare una grigliatable.unpackRiepilogo: array e mappeEsercitati da solo: Compilatore Luau online