Enum di stringhe come unioni
Fa parte della sezione Introduzione a Luau del percorso Lua di Coddy. Lezione 53 di 73.
I numeri rendono i log criptici: vedere 2 ti dice poco, vedere "down" ti dice tutto. Per enum leggibili, i tipi unione di valori letterali di Luau sono lo strumento giusto: un tipo i cui membri sono stringhe esatte:
type Direction = "up" | "down" | "left" | "right"
local facing: Direction = "up" -- ✓
local typo: Direction = "upp" -- ✗ errore di tipo durante la modificaUna variabile annotata con Direction può contenere quelle quattro stringhe e nient'altro. Se ne scrivi una in modo errato, il controllo la rileva immediatamente: il bug non raggiunge mai un giocatore.
In fase di esecuzione, i valori sono semplici stringhe. Stampale, concatenale, confrontale con ==. Tutto ciò che sai sulle stringhe vale anche qui:
print(facing) -- up
print(`facing {facing}`) -- facing upConfronta i due schemi che hai ora: la tabella di costanti crea un unico valore in fase di esecuzione (UserRole) che contiene i membri, mentre l'unione di valori letterali non crea alcun valore. Non esiste una tabella Direction, ma solo una regola applicata dal controllo per stabilire quali stringhe sono valide. Valori descrittivi e autoesplicativi, senza alcun costo in fase di esecuzione, fanno delle unioni di valori letterali lo stile di enum preferito nel codice Luau.
Sfida
FacileCrea un tipo di unione letterale denominato Direction con i membri "up", "down", "left" e "right".
Crea quattro variabili, ognuna annotata con Direction:
upDirection="up"downDirection="down"leftDirection="left"rightDirection="right"
Stampa, ciascuno su una riga:
upDirectiondownDirectionleftDirectionrightDirection- il messaggio
The player moves left, costruito con l'interpolazione di stringhe a partire daleftDirection
Provalo tu
-- Scrivi il codice qui
-- 1) definisci il tipo Direction come un'unione dei quattro letterali stringa
-- 2) crea le quattro variabili annotate
-- 3) stampa ciascuna di esse, poi il messaggio interpolato
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 tipi8Gli enum, secondo lo stile di Luau
Il pattern degli enum in LuauEnum numerici con le tabelleEnum di stringhe come unioniUsare enum con unioni di valori letteraliCongelare le tabelle costantiRiepilogo: gli enum, secondo lo stile di Luau3Tabelle 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