Menu
CoddyTech

Birlik Olarak Metin Enum'ları

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

Sayılar günlükleri anlaşılması güç hâle getirir: 2 görmek pek bir şey anlatmazken "down" görmek her şeyi anlatır. Okunabilir enum'lar için Luau'nun literal birleşim türleri kullanılabilir: üyeleri tam olarak belirli dizelerden oluşan bir tür:

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

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

Direction türüyle açıklama eklenmiş bir değişken bu dört dizeyi tutabilir, başka hiçbir şeyi tutamaz. Birini yanlış yazarsan denetleyici bunu anında yakalar: hata hiçbir zaman oyuncuya ulaşmaz.

Çalışma zamanında bu değerler yalın dizelerdir. Bunları yazdırabilir, birleştirebilir ve == ile karşılaştırabilirsin. Dizeler hakkında bildiğin her şey burada da geçerlidir:

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

Artık elinde olan iki kalıbı karşılaştır: sabit tablosu, üyeleri tutan tek bir çalışma zamanı değeri (UserRole) oluştururken literal birleşim hiç değer oluşturmaz. Bir Direction tablosu yoktur; yalnızca hangi dizelerin uygun olduğunu denetleyicinin uyguladığı bir kural vardır. Açıklayıcı, kendi kendini belgeleyen değerler sunmaları ve çalışma zamanında sıfır maliyet getirmeleri, literal birleşimleri Luau kodunda enum kullanmanın başlıca yolu hâline getirir.

challenge icon

Görev

Kolay

Yalnızca dört addan biri olabilen bir yön sakla.

  1. type Direction = "up" | "down" | "left" | "right" yaz.
  2. local facing: Direction = "left" tanımla.
  3. Önce facing, ardından `The player moves {facing}` değerini yazdır.

Run Code düğmesine bas: çıktıda left ve The player moves left görünür.

Kendin dene

-- 1) Direction türünü dört string değerinin birleşimi olarak tanımla
-- 2) local facing: Direction = "left"
-- 3) facing değerini, ardından cümleyi yazdır

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

Kendi başına pratik yap: Online Luau derleyicisi