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
endPerhatikan bahwa parameter bertipe number: pola tabel saja tidak membatasi angka yang boleh digunakan. Jaminan itulah yang ditambahkan oleh union literal di pelajaran berikutnya.
Tantangan
MudahBuat tabel konstanta bernama UserRole dengan tiga anggota:
Admin=1Editor=2Viewer=3
Buat fungsi checkPermissions yang menerima role: number dan mencetak:
Full access grantedjika role adalahUserRole.AdminEdit access grantedjika role adalahUserRole.EditorView access onlyjika tidak
Lalu, secara berurutan:
- cetak
UserRole.Admin - cetak
UserRole.Editor - cetak
UserRole.Viewer - panggil
checkPermissions(UserRole.Admin) - panggil
checkPermissions(UserRole.Editor) - 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
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Pengantar Luau
1Memulai dengan Luau
Apa Itu Luau?Mengapa Menggunakan Luau?Kode Luau PertamamuPemeriksaan Tipe dan Mode ErrorRangkuman: Pengenalan Luau4Bekerja dengan Fungsi
Menentukan Tipe Parameter dan Nilai KembalianMenentukan Tipe Fungsi AnonimFungsi yang Tidak Mengembalikan NilaiParameter OpsionalNilai Default ParameterFungsi VariadikMendefinisikan Tipe FungsiRangkuman: Fungsi Bertipe2Tipe Inti
Tipe Dasar: num, str, boolTipe 'any': Jalan Keluar DaruratTipe 'unknown'Nil & Tipe OpsionalInferensi Tipe dalam PraktikAnotasi Tipe EksplisitUlasan: Latihan Tipe Inti5Alias, Union, dan Intersection
Alias Tipe untuk Tipe PrimitifTipe UnionMenggunakan Tipe UnionTipe LiteralTipe IntersectionMenggabungkan Alias TipeRekap: Kombinasi Tipe Lanjutan8Enum, Cara Luau
Pola Enum di LuauEnum Numerik dengan TabelEnum String sebagai UnionMenggunakan Enum Union LiteralMembekukan Tabel KonstantaUlasan: Enum, Cara Luau3Tabel Bertipe: array dan Map
array BertipeMenambahkan dan Membaca ElemenApa Itu Tipe Map?Mendeklarasikan dan Mengakses MapMelakukan Iterasi pada TabelTabel dengan Bentuk Campuranarray Bertipe Multidimensitable.unpack dan VarargsRingkasan: array dan MapLatihan sendiri: Compiler Luau online