Tablolar ile Sayısal Enum'lar
Coddy'nin Lua Journey'sinin Luau'ya Giriş bölümünün bir parçası. Ders 52 / 73.
Sabit tablo desenini düzgün bir şekilde oluşturalım. PascalCase bir tablo adı seçin, her üyeye açık bir sayı verin ve bundan sonra kod adlarla konuşsun:
local UserRole = {
Admin = 1,
Editor = 2,
Viewer = 3,
}TypeScript'in enum yapısının aksine, hiçbir şey otomatik olarak numaralandırılmaz. Her değeri siz seçersiniz. 1 ile başlamak Lua'nın kurallarına güzelce uyar, ancak her düzen kullanılabilir (200 ve 404 gibi HTTP tarzı kodlar da uygundur).
Üyeler karşılaştırmalarda öne çıkar. Bir rol alan işlev, doğrudan sayılar yerine adlandırılmış sabitlerle dallanabilir:
local function checkPermissions(role: number)
if role == UserRole.Admin then
print("Full access granted")
elseif role == UserRole.Editor then
print("Edit access granted")
else
print("View access only")
end
endParametrenin number türünde olduğuna dikkat edin: tek başına tablo deseni, hangi sayıların kullanılabileceğini kısıtlamaz. Bu garanti, bir sonraki derste ekleyeceğimiz değişmez birleşimlerin tam olarak sağladığı şeydir.
Görev
KolayUserRole adlı üç üyeye sahip bir sabit tablo oluşturun:
Admin=1Editor=2Viewer=3
checkPermissions alan ve şunları yazdıran bir role: number işlevi oluşturun:
- rol
Full access grantediseUserRole.Admin - rol
Edit access grantediseUserRole.Editor - diğer durumlarda
View access only
Ardından, sırasıyla:
UserRole.Admindeğerini yazdırınUserRole.Editordeğerini yazdırınUserRole.Viewerdeğerini yazdırıncheckPermissions(UserRole.Admin)işlevini çağırıncheckPermissions(UserRole.Editor)işlevini çağırıncheckPermissions(UserRole.Viewer)işlevini çağırın
Kendin dene
-- Kodu buraya yaz
-- 1) UserRole sabit tablosunu oluştur (Admin=1, Editor=2, Viewer=3)
-- 2) checkPermissions(role: number) fonksiyonunu if/elseif/else ile yaz
-- 3) üç üyeyi yazdır, sonra her biri için fonksiyonu çağır
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