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.
Görev
KolayDirection 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:
upDirectiondownDirectionleftDirectionrightDirectionleftDirectionkullanılarak dize enterpolasyonuyla oluşturulanThe player moves leftmesajı
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ı
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'lerKendi başına pratik yap: Online Lua derleyicisi