Enum Numerik dengan Tabel
Termasuk bagian Pengantar Luau dalam perjalanan Lua di Coddy. Pelajaran 56 dari 80.
Berikut pola tabel konstanta selengkapnya. Pilih nama tabel PascalCase, beri setiap anggotanya angka eksplisit, lalu kode akan menggunakan nama-nama tersebut:
local UserRole = {
Admin = 1,
Editor = 2,
Viewer = 3,
}Tidak seperti enum TypeScript, tidak ada penomoran 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 role dapat menggunakan percabangan berdasarkan konstanta bernama, 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 mana yang boleh digunakan. Jaminan itulah yang ditambahkan oleh gabungan literal dalam pelajaran berikutnya.
Tantangan
MudahBeri nama tiga tingkat kesulitan dengan tabel konstanta.
- Buat
local Level = {Easy = 1, Normal = 2, Hard = 3}. - Tulis
local function describeLevel(level: number): stringyang mengembalikan"Relaxed"untukLevel.Easy,"Standard"untukLevel.Normal, dan"Brutal"untuk kondisi lainnya. - Cetak
Level.Hard, laludescribeLevel(Level.Normal).
Tekan Jalankan: output menampilkan 3 dan Standard.
Coba sendiri
-- 1) tabel konstanta Level (Easy = 1, Normal = 2, Hard = 3)
-- 2) describeLevel(level: number): string dengan if/elseif/else
-- 3) cetak Level.Hard, lalu describeLevel(Level.Normal)
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
Mengetik Parameter dan Nilai KembalianMengetik Fungsi AnonimFungsi Tanpa Nilai KembalianParameter OpsionalNilai Parameter DefaultNilai Default untuk BooleanFungsi VariadikMendefinisikan Tipe FungsiUlasan: Fungsi Bertipe2Tipe Inti
Number, String, dan BooleanTipe 'any': Jalan KeluarTipe 'unknown'Nil dan 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 & map
Array BertipeMenambahkan dan Membaca ElemenApa Itu Tipe Map?Mendeklarasikan dan Mengakses MapMenelusuri TabelTabel dengan Bentuk CampuranMembaca GridMembuat Gridtable.unpackRangkuman: array dan mapLatihan sendiri: Compiler Luau online