Valori predefiniti dei parametri
Fa parte della sezione Introduzione a Luau del percorso Lua di Coddy. Lezione 27 di 80.
I parametri facoltativi ti lasciano un nil da gestire. Spesso quello che vuoi davvero è un valore di ripiego: «se chi chiama non ha specificato nulla, presumi X». Luau non ha una sintassi per i valori predefiniti nella firma (non esiste greeting: string = "Hello"); invece si usa il classico idiom di Lua, ora con i tipi:
function greet(name: string, greeting: string?): string
greeting = greeting or "Hello"
return `{greeting}, {name}`
end
print(greet("Alice")) -- Hello, Alice
print(greet("Alice", "Howdy")) -- Howdy, AliceIl parametro è annotato come facoltativo (string?) e la prima riga del corpo sostituisce nil con il valore predefinito. Funziona perché nil è falso: nil or "Hello" restituisce "Hello". Dopo quella riga, il verificatore sa che greeting non può più essere nil.
Sfida
FacileAssegna un valore predefinito a un parametro opzionale.
- Scrivi
local function calculateTax(price: number, rate: number?): number. - La sua prima riga è
rate = rate or 0.05; poi restituisciprice * rate. - Stampa
calculateTax(100)ecalculateTax(200, 0.08).
Premi Esegui codice: l'output mostra 5, poi 16.
Provalo tu
-- 1) calculateTax(price: number, rate: number?): number
-- valore predefinito di rate 0.05 con l'idioma `or`
-- 2) stampa calculateTax(100) e calculateTax(200, 0.08)
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