Menu
CoddyTech

Enum String sebagai Union

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

Angka membuat log sulit dipahami: melihat 2 tidak banyak memberi tahu, melihat "down" memberi tahu semuanya. Untuk enum yang mudah dibaca, tipe union literal Luau adalah alatnya: tipe yang anggotanya berupa string persis:

type Direction = "up" | "down" | "left" | "right"

local facing: Direction = "up"    -- ✓
local typo: Direction = "upp"     -- ✗ error tipe saat mengedit

Variabel yang diberi anotasi Direction dapat berisi empat string tersebut dan tidak ada yang lain. Jika salah mengeja salah satunya, pemeriksa akan langsung mengetahuinya: bug itu tidak akan pernah sampai ke pemain.

Saat runtime, nilainya adalah string biasa. Cetak, gabungkan, bandingkan dengan ==. Semua yang kamu ketahui tentang string berlaku:

print(facing)            -- atas
print(`facing {facing}`) -- facing ke atas

Bandingkan dua pola yang kini kamu miliki: tabel konstanta membuat satu nilai runtime (UserRole) yang menyimpan anggota, sedangkan union literal sama sekali tidak membuat nilai. Tidak ada tabel Direction, hanya aturan yang diberlakukan pemeriksa tentang string mana yang sesuai. Nilai deskriptif yang menjelaskan dirinya sendiri tanpa biaya runtime menjadikan union literal gaya enum pilihan utama dalam kode Luau.

challenge icon

Tantangan

Mudah

Buat tipe union literal bernama Direction dengan anggota "up", "down", "left" dan "right".

Buat empat variabel, masing-masing diberi anotasi Direction:

  • upDirection = "up"
  • downDirection = "down"
  • leftDirection = "left"
  • rightDirection = "right"

Cetak, masing-masing pada barisnya sendiri:

  1. upDirection
  2. downDirection
  3. leftDirection
  4. rightDirection
  5. pesan The player moves left, yang dibuat dengan interpolasi string dari leftDirection

Coba sendiri

-- Tulis kodemu di sini
-- 1) definisikan tipe Direction sebagai gabungan dari empat literal string
-- 2) buat empat variabel dengan anotasi
-- 3) cetak masing-masing, lalu pesan yang menggunakan interpolasi
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