Menu
Coddy logo textTech

Numerische Enums mit Tables

Teil des Abschnitts Einführung in Luau der Lua-Journey von Coddy — Lektion 52 von 73.

Lass uns das Muster für Constant-Tables richtig aufbauen. Wähle einen Tabellennamen in PascalCase, weise jedem Mitglied eine explizite Nummer zu, und von da an spricht der Code in Namen:

local UserRole = {
    Admin = 1,
    Editor = 2,
    Viewer = 3,
}

Anders als bei TypeScripts enum wird nichts automatisch nummeriert — du wählst jeden Wert selbst. Bei 1 zu beginnen passt gut zu den Luau-Konventionen, aber jedes Schema funktioniert (HTTP-ähnliche Codes wie 200 und 404 sind ebenfalls völlig in Ordnung).

Mitglieder glänzen in Vergleichen. Eine Funktion, die eine Rolle empfängt, kann anhand der benannten Konstanten verzweigen anstelle von bloßen Zahlen:

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

Beachte, dass der Parameter den Typ number hat — das Tabellenmuster allein schränkt nicht ein, welche Zahlen erlaubt sind. Genau diese Garantie fügen Literal Unions in der nächsten Lektion hinzu.

challenge icon

Aufgabe

Einfach

Erstelle eine local Tabelle namens UserRole mit three members:

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

Erstelle eine function checkPermissions, die role: number entgegennimmt und Folgendes ausgibt:

  • Full access granted, wenn die Rolle UserRole.Admin ist
  • Edit access granted, wenn die Rolle UserRole.Editor ist
  • View access only andernfalls

Danach, in dieser Reihenfolge:

  1. print UserRole.Admin
  2. print UserRole.Editor
  3. print UserRole.Viewer
  4. call checkPermissions(UserRole.Admin)
  5. call checkPermissions(UserRole.Editor)
  6. call checkPermissions(UserRole.Viewer)

Probier es selbst

-- Schreibe hier den Code
-- 1) erstelle die UserRole-Konstantentabelle (Admin=1, Editor=2, Viewer=3)
-- 2) schreibe checkPermissions(role: number) mit if/elseif/else
-- 3) gib die drei Mitglieder aus, rufe dann die Funktion für jedes auf
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Einführung in Luau