Menu
Coddy logo textTech

Birlik Olarak Metin Enum'ları

Coddy'nin Lua Journey'sinin Luau'ya Giriş bölümünün bir parçası. Ders 53 / 73.

Sayılar anlaşılması zor günlükler oluşturur: 2 görmek size çok az şey söyler, "down" görmek ise her şeyi anlatır. Okunabilir enum'lar için Luau'nun literal union types özelliği doğru araçtır: üyeleri tam olarak belirlenmiş dizeler olan bir tür:

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

local facing: Direction = "up"    -- ✓
local typo: Direction = "upp"     -- ✗ düzenleme sırasında tip hatası

Direction ile tür açıklaması yapılmış bir değişken bu dört dizeyi ve başka hiçbir şeyi tutamaz. Birinin yazımını yanlış yaparsanız denetleyici bunu anında yakalar: hata bir oyuncuya hiç ulaşmaz.

Çalışma zamanında değerler yalın dizelerdir. Onları yazdırın, birleştirin, == ile karşılaştırın. Dizeler hakkında bildiğiniz her şey geçerlidir:

print(facing)            -- yukarı
print(`facing {facing}`) -- facing yukarı

Şimdi elinizde bulunan iki deseni karşılaştırın: sabit tablo, üyeleri tutan tek bir çalışma zamanı değeri (UserRole) oluştururken literal union hiçbir değer oluşturmaz. Direction tablosu yoktur; yalnızca hangi dizelerin uygun olduğuna ilişkin, denetleyicinin uyguladığı bir kural vardır. Çalışma zamanında sıfır maliyetle açıklayıcı ve kendini belgeleyen değerler sağladıkları için literal union'lar Luau kodunda başvurulan enum stilidir.

challenge icon

Görev

Kolay

Direction adlı "up", "down", "left" ve "right" üyelerine sahip bir literal birleşim türü oluşturun.

Her biri Direction ile türü belirtilmiş dört değişken oluşturun:

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

Her birini kendi satırında yazdırın:

  1. upDirection
  2. downDirection
  3. leftDirection
  4. rightDirection
  5. leftDirection kullanılarak dize enterpolasyonuyla oluşturulan The player moves left mesajı

Kendin dene

-- Kodu buraya yaz
-- 1) Direction tipini dört string literal'in birleşimi olarak tanımla
-- 2) dört anotasyonlu değişkeni oluştur
-- 3) her birini yazdır, sonra interpolasyonlu mesajı
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Luau'ya Giriş bölümündeki tüm dersler

Kendi başına pratik yap: Online Lua derleyicisi