Menu
Coddy logo textTech

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
end

Parametrenin 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.

challenge icon

Görev

Kolay

UserRole adlı üç üyeye sahip bir sabit tablo oluşturun:

  • Admin = 1
  • Editor = 2
  • Viewer = 3

checkPermissions alan ve şunları yazdıran bir role: number işlevi oluşturun:

  • rol Full access granted ise UserRole.Admin
  • rol Edit access granted ise UserRole.Editor
  • diğer durumlarda View access only

Ardından, sırasıyla:

  1. UserRole.Admin değerini yazdırın
  2. UserRole.Editor değerini yazdırın
  3. UserRole.Viewer değerini yazdırın
  4. checkPermissions(UserRole.Admin) işlevini çağırın
  5. checkPermissions(UserRole.Editor) işlevini çağırın
  6. checkPermissions(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
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

Kendi başına pratik yap: Online Lua derleyicisi