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 mengeditVariabel 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 atasBandingkan 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.
Tantangan
MudahBuat 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:
upDirectiondownDirectionleftDirectionrightDirection- pesan
The player moves left, yang dibuat dengan interpolasi string darileftDirection
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
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