Menu
Coddy logo textTech

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
end

Nota 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.

challenge icon

Sfida

Facile

Crea una tabella di costanti chiamata UserRole con tre membri:

  • Admin = 1
  • Editor = 2
  • Viewer = 3

Crea una funzione checkPermissions che accetta role: number e stampa:

  • Full access granted se il ruolo è UserRole.Admin
  • Edit access granted se il ruolo è UserRole.Editor
  • View access only altrimenti

Poi, nell'ordine:

  1. stampa UserRole.Admin
  2. stampa UserRole.Editor
  3. stampa UserRole.Viewer
  4. chiama checkPermissions(UserRole.Admin)
  5. chiama checkPermissions(UserRole.Editor)
  6. 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
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Introduzione a Luau

Esercitati da solo: Compilatore Luau online