Enum numerici con le tabelle
Fa parte della sezione Introduzione a Luau del percorso Lua di Coddy. Lezione 56 di 80.
Ecco il modello con tabella di costanti nella sua forma completa. Scegli un nome di tabella in PascalCase, assegna a ogni membro un numero esplicito e, da quel momento in poi, il codice usa i nomi:
local UserRole = {
Admin = 1,
Editor = 2,
Viewer = 3,
}A differenza di enum di TypeScript, i numeri non vengono assegnati automaticamente. Scegli tu ogni valore. Iniziare da 1 si adatta bene alle convenzioni di Lua, ma va bene qualsiasi schema (anche codici in stile HTTP come 200 e 404).
I membri sono particolarmente utili nei confronti. Una funzione che riceve un ruolo può diramarsi in base alle costanti con nome anziché a numeri senza nome:
local function checkPermissions(role: number)
if role == UserRole.Admin then
print("Full access granted")
elseif role == UserRole.Editor then
print("Edit access granted")
else
print("View access only")
end
endNota che il parametro è tipizzato come number: il solo modello con tabella non limita i numeri consentiti. È proprio questa garanzia che le unioni di valori letterali aggiungono nella prossima lezione.
Sfida
FacileDai un nome a tre livelli di difficoltà con una tabella di costanti.
- Crea
local Level = {Easy = 1, Normal = 2, Hard = 3}. - Scrivi
local function describeLevel(level: number): stringche restituisca"Relaxed"perLevel.Easy,"Standard"perLevel.Normale, altrimenti,"Brutal". - Stampa
Level.Hard, poidescribeLevel(Level.Normal).
Premi Esegui il codice: l'output mostra 3 e Standard.
Provalo tu
-- 1) la tabella di costanti Level (Easy = 1, Normal = 2, Hard = 3)
-- 2) describeLevel(level: number): string con if/elseif/else
-- 3) stampa Level.Hard, poi describeLevel(Level.Normal)
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