Tipi unione
Fa parte della sezione Introduzione a Luau del percorso Lua di Coddy. Lezione 33 di 80.
A volte un solo tipo non basta. Un ID utente potrebbe arrivare come "user123" oppure come 42. In Lua standard dovresti solo sperare per il meglio; Luau ti offre i tipi unione: la barra verticale | si legge «oppure»:
local userId: number | string
userId = "user123" -- ✓ una stringa è consentita
userId = 42 -- ✓ un numero è consentito
userId = true -- ✗ errore di tipo: boolean non è incluso nell'unioneLa variabile può contenere uno qualsiasi dei membri dell'unione, e solo quelli. Questa è la differenza fondamentale rispetto a any: un'unione mantiene rigorosi i valori consentiti, offrendoti al contempo la flessibilità di cui hai bisogno.
Le unioni sono particolarmente utili per i parametri delle funzioni 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 di unione dopo averne ottenuto uno.
Sfida
FacileAccetta un valore che sia un numero o una stringa.
- Scrivi
local function printId(id: number | string): ()che stampaid. - Dichiara
local status: string | number = "active". - Chiama
printId(7)eprintId("player7"), poi impostastatus = 200e stampalo.
Premi Esegui codice: l'output mostra 7, player7 e 200.
Provalo tu
-- 1) printId(id: number | string): ()
-- 2) local status: string | number = "active"
-- 3) chiama printId(7) e printId("player7"), imposta status a 200 e stampalo
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