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.
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:
upDirectiondownDirectionleftDirectionrightDirectionleftDirectiondeğişkeninden string interpolation ile oluşturulmuşThe player moves leftmesajı
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ı
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
1Luau ile Başlarken
Luau Nedir?Neden Luau Kullanılmalı?İlk Luau KodunuzTip Denetimi ve Hata ModlarıÖzet: Luau'ya Giriş4Fonksiyonlarla Çalışmak
Parametreleri ve Geri Dönüş Değerlerini TiplendirmeAnonim Fonksiyonları TiplendirmeHiçbir Şey Döndürmeyen Fonksiyonlarİsteğe Bağlı ParametrelerVarsayılan Parametre DeğerleriDeğişken Sayıda Parametre Alan Fonksiyonlar (Variadic)Fonksiyon Tiplerini TanımlamaÖzet: Tiplendirilmiş Fonksiyonlar2Temel Tipler
Temel Tipler: num, str, bool'any' Tipi: Kaçış Yolu'unknown' TipiNil ve İsteğe Bağlı (Optional) TiplerUygulamada Tip ÇıkarımıAçık Tip BelirteçleriÖzet: Temel Tipler Pratiği5Diğer Adlar (Aliases), Birleşimler, Kesişimler
İlkel Tipler için Tip Diğer Adları (Type Aliases)Birleşim Tipleri (Union Types)Birleşim Tipleri ile ÇalışmakLiteral (Sabit) TiplerKesişim Tipleri (Intersection Types)Tip Diğer Adlarını BirleştirmeÖzet: Gelişmiş Tip Kombinasyonları8Enum'lar: Luau Yöntemi
Luau'da Enum DeseniTablolar ile Sayısal Enum'larBirlik Olarak Metin Enum'larıHarfi Birlik Enum'larını KullanmaSabit Tabloları DondurmaÖzet: Enum'lar, Luau Yöntemi3Tipli Tablolar: Diziler ve Map'ler
Tipli DizilerEleman Ekleme ve OkumaMap Tipi Nedir?Map Bildirimi ve Map'lere ErişimTablolar Üzerinde YinelemeKarma Biçimli TablolarÇok Boyutlu Tipli Dizilertable.unpack ve VarargsÖzet: Diziler ve Map'ler