Menu
CoddyTech

Enum Numerik dengan Tabel

Termasuk bagian Pengantar Luau dalam perjalanan Lua di Coddy. Pelajaran 52 dari 73.

Mari susun pola tabel konstanta dengan benar. Pilih nama tabel PascalCase, beri setiap anggotanya angka yang jelas, lalu setelah itu gunakan nama dalam kodemu:

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

Berbeda dengan enum TypeScript, nilainya tidak diberi nomor secara otomatis. Kamu memilih setiap nilai. Memulai dari 1 cocok dengan konvensi Lua, tetapi skema apa pun bisa digunakan, termasuk kode bergaya HTTP seperti 200 dan 404.

Anggota tabel sangat berguna dalam perbandingan. Fungsi yang menerima peran dapat menggunakan konstanta bernama dalam percabangan, bukan angka biasa:

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

Perhatikan bahwa parameter bertipe number: pola tabel saja tidak membatasi angka yang boleh digunakan. Jaminan itulah yang ditambahkan oleh union literal di pelajaran berikutnya.

challenge icon

Tantangan

Mudah

Buat tabel konstanta bernama UserRole dengan tiga anggota:

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

Buat fungsi checkPermissions yang menerima role: number dan mencetak:

  • Full access granted jika role adalah UserRole.Admin
  • Edit access granted jika role adalah UserRole.Editor
  • View access only jika tidak

Lalu, secara berurutan:

  1. cetak UserRole.Admin
  2. cetak UserRole.Editor
  3. cetak UserRole.Viewer
  4. panggil checkPermissions(UserRole.Admin)
  5. panggil checkPermissions(UserRole.Editor)
  6. panggil checkPermissions(UserRole.Viewer)

Coba sendiri

-- Tulis kodemu di sini
-- 1) buat tabel konstanta UserRole (Admin=1, Editor=2, Viewer=3)
-- 2) tulis fungsi checkPermissions(role: number) dengan if/elseif/else
-- 3) cetak ketiga anggotanya, lalu panggil fungsi tersebut untuk setiap anggota
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Pengantar Luau

Latihan sendiri: Compiler Luau online