Enum numerici con le tabelle
Fa parte della sezione Introduzione a Luau del percorso Lua di Coddy. Lezione 52 di 73.
Costruiamo correttamente il modello con tabella di costanti. Scegli un nome per la tabella in PascalCase, assegna un numero esplicito a ogni membro e da quel momento il codice userà i nomi:
local UserRole = {
Admin = 1,
Editor = 2,
Viewer = 3,
}A differenza di enum di TypeScript, i valori non vengono numerati 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ò usare le costanti con nome per diramare il flusso invece dei 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
FacileCrea una tabella di costanti chiamata UserRole con tre membri:
Admin=1Editor=2Viewer=3
Crea una funzione checkPermissions che accetta role: number e stampa:
Full access grantedse il ruolo èUserRole.AdminEdit access grantedse il ruolo èUserRole.EditorView access onlyaltrimenti
Poi, nell'ordine:
- stampa
UserRole.Admin - stampa
UserRole.Editor - stampa
UserRole.Viewer - chiama
checkPermissions(UserRole.Admin) - chiama
checkPermissions(UserRole.Editor) - chiama
checkPermissions(UserRole.Viewer)
Provalo tu
-- Scrivi il codice qui
-- 1) crea la tabella di costanti UserRole (Admin=1, Editor=2, Viewer=3)
-- 2) scrivi checkPermissions(role: number) usando if/elseif/else
-- 3) stampa i tre membri, poi chiama la funzione per ciascuno
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