Tipi unione
Fa parte della sezione Introduzione a Luau del percorso Lua di Coddy. Lezione 31 di 73.
A volte un solo tipo non basta. Un ID utente potrebbe arrivare come "user123" oppure come 42. In Lua standard, potresti solo sperare per il meglio; Luau ti offre i tipi unione: la barra verticale | si legge «oppure»:
local userId: number | string
userId = "user123" -- ✓ una string è consentita
userId = 42 -- ✓ un number è consentito
userId = true -- ✗ errore di tipo: boolean non fa parte dell'unioneLa variabile può contenere uno qualsiasi dei membri dell’unione, e solo quelli. Questa è la differenza fondamentale rispetto a any: un’unione mantiene regole rigorose su ciò che è consentito, offrendoti al tempo stesso la flessibilità di cui hai bisogno.
Le unioni sono particolarmente utili per i parametri di funzione che accettano più formati di input:
function printId(id: number | string): ()
print(id)
end
printId(42) -- funziona con un numero
printId("user123") -- funziona con una stringaConosci già string?. È stata la tua prima unione! È semplicemente una forma abbreviata di string | nil. Nella prossima lezione imparerai a lavorare in sicurezza con un valore unione, una volta che ne avrai uno.
Sfida
FacileCrea una funzione chiamata printId che accetta id: number | string e lo stampa: tipo di ritorno esplicito ().
Dichiara una variabile status di tipo string | number, inizializzata a "<code>active".
Poi, in ordine:
- Chiama
printId(42) - Chiama
printId("<code>user123") - Stampa
status - Riassegna
statusa200e stampala di nuovo
Quattro righe di output in totale.
Provalo tu
-- Scrivi il codice qui
-- printId(id: number | string): ()
-- local status: string | number = il testo esatto delle istruzioni
-- chiama printId(42), printId(il testo esatto delle istruzioni),
-- stampa status, riassegna 200, poi stampa di nuovo
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
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 i parametri e i valori restituitiTipizzare le funzioni anonimeFunzioni che non restituiscono nullaParametri opzionaliValori predefiniti dei parametriFunzioni variadicheDefinire i tipi di funzioneRiepilogo: funzioni tipizzate2Tipi fondamentali
Tipi di base: num, str, boolIl tipo 'any': una via di fugaIl tipo 'unknown'Nil e tipi opzionaliL'inferenza dei tipi in azioneAnnotazioni 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 strutture misteArray tipizzati multidimensionalitable.unpack e argomenti variabiliRiepilogo: array e mappeEsercitati da solo: Compilatore Luau online