Pola Enum di Luau
Termasuk bagian Pengantar Luau dalam perjalanan Lua di Coddy. Pelajaran 51 dari 73.
Program penuh dengan nilai yang diambil dari sekumpulan kecil yang tetap: pesanan berstatus pending, shipped, atau delivered; pemain menghadap ke up, down, left, atau right. Banyak bahasa memiliki kata kunci enum untuk ini. Luau tidak memilikinya, dan Luau tidak membutuhkannya, karena dua alat yang sudah kamu miliki dapat melakukan tugas ini.
Pola 1: tabel konstanta. Tabel biasa memetakan nama yang bermakna ke nilai, menggantikan "angka ajaib" yang tersebar di seluruh kode:
local Status = {
Pending = 1,
Active = 2,
Done = 3,
}
print(Status.Active) -- 2Ini adalah nilai runtime sungguhan: kamu dapat membaca Status.Active, membandingkannya, dan meneruskannya, sama seperti tabel yang sudah kamu gunakan selama ini.
Pola 2: union literal. Tipe yang terdiri dari nilai string tertentu, menggunakan tipe literal yang kamu pelajari di bab tentang union:
type Color = "red" | "green" | "blue"
local favorite: Color = "green" -- ✓
local oops: Color = "yellow" -- ✗ error tipeUnion hanya ada untuk pemeriksa tipe dan tidak memerlukan biaya runtime, tetapi union menjamin variabel tidak dapat menyimpan nilai di luar sekumpulan tersebut. Kedua pola ini saling melengkapi: tabel memberimu nilai runtime dengan satu nama, sedangkan union memberimu jaminan saat kompilasi. Nanti di bab ini, kamu juga akan mempelajari table.freeze, yang melindungi tabel konstanta agar tidak diubah saat runtime.
Coba sendiri
Pelajaran ini tidak memiliki tantangan kode.
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