Enum di stringhe come unioni
Fa parte della sezione Introduzione a Luau del percorso Lua di Coddy. Lezione 57 di 80.
I numeri rendono i log criptici: vedere 2 ti dice poco, vedere "down" ti dice tutto. Per creare 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 verificatore se ne accorge subito: 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 si applica:
print(facing) -- su
print(`facing {facing}`) -- facing verso l'altoConfronta i due schemi che hai a disposizione: la tabella di costanti crea un valore in fase di esecuzione (UserRole) che contiene membri, mentre l'unione di valori letterali non crea alcun valore. Non esiste una tabella Direction, ma solo una regola imposta dal verificatore su quali stringhe sono ammesse. Valori descrittivi e autoesplicativi, senza costi in fase di esecuzione: ecco perché le unioni di valori letterali sono lo stile enum preferito nel codice Luau.
Sfida
FacileMemorizza una direzione che può essere solo uno di quattro nomi.
- Scrivi
type Direction = "up" | "down" | "left" | "right". - Dichiara
local facing: Direction = "left". - Stampa
facing, poi`The player moves {facing}`.
Premi Esegui codice: l'output mostra left e The player moves left.
Provalo tu
-- 1) definisci il tipo Direction come un'unione di quattro stringhe
-- 2) local facing: Direction = "left"
-- 3) stampa facing, poi la frase
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 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 forme misteLeggere una grigliaCreare una grigliatable.unpackRiepilogo: array e mappeEsercitati da solo: Compilatore Luau online