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 karmaşık günlükler (log) oluşturur: 2 görmek size az şey anlatır, "down" görmek ise her şeyi anlatır. Okunabilir enum'lar için Luau'nun literal union türleri mükemmel bir araçtır — üyeleri tam olarak string 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 annotated bir değişken bu four strings değerini tutabilir ve başka hiçbir şey tutamaz. Birini yanlış yazarsanız kontrolcü bunu anında yakalar — hata asla bir oyuncuya ulaşmaz.

runtime sırasında değerler plain strings halindedir. Bunları print edin, birleştirin, == ile karşılaştırın — strings hakkında bildiğiniz her şey geçerlidir:

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

Şimdi sahip olduğunuz iki modeli karşılaştırın: sabit tablosu üyeleri tutan one runtime değeri (UserRole) oluştururken, literal union hiçbir değer oluşturmaz — Direction tablosu yoktur, yalnızca kontrolcünün hangi strings değerlerinin uyduğunu denetlediği bir kural vardır. Sıfır runtime maliyetiyle açıklayıcı, kendi kendini belgeleyen değerler, literal union yapılarını Luau kodunda tercih edilen enum stili haline getirir.

challenge icon

Görev

Kolay

Üyeleri "up", "down", "left" ve "right" olan Direction adında bir literal union tipi oluşturun.

Her biri Direction ile tür belirtimine (annotated) sahip dört değişken oluşturun:

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

Her birini ayrı bir satırda yazdırın:

  1. upDirection
  2. downDirection
  3. leftDirection
  4. rightDirection
  5. leftDirection değişkeninden string interpolation ile oluşturulmuş The player moves left mesajı

Kendin dene

-- Buraya kod yazın
-- 1) Direction tipini dört string literal'in birleşimi olarak tanımla
-- 2) dört açıklamalı değişkeni oluştur
-- 3) her birini yazdır, sonra enterpolasyonlu 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