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 tablosu (constant-table) desenini düzgün bir şekilde oluşturalım. PascalCase formatında bir tablo adı seçin, her bir üyeye (members) açıkça bir sayı (number) atayın ve bundan böyle kod isimlerle 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 geleneklerine gayet güzel uyar, ancak her türlü düzen çalışır (200 ve 404 gibi HTTP tarzı kodlar da uygundur).

Üyeler karşılaştırmalarda (compare) parıldar. Bir role alan function, yalın sayılar yerine isimlendirilmiş sabitler (constants) üzerinden 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 olarak tiplendiğine dikkat edin — tek başına tablo deseni hangi sayıların izinli olduğunu kısıtlamaz. Bu güvence, tam olarak bir sonraki derste literal birleşimlerin (literal unions) eklediği şeydir.

challenge icon

Görev

Kolay

Üç üyeye sahip UserRole adında bir constant table oluşturun:

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

role: number alan ve şunları yazdıran bir checkPermissions fonksiyonu (function) oluşturun:

  • role değeri UserRole.Admin ise Full access granted
  • role değeri UserRole.Editor ise Edit access granted
  • Aksi takdirde View access only

Ardından, sırasıyla:

  1. print UserRole.Admin
  2. print UserRole.Editor
  3. print UserRole.Viewer
  4. checkPermissions(UserRole.Admin) çağrısını yapın (call)
  5. checkPermissions(UserRole.Editor) çağrısını yapın (call)
  6. checkPermissions(UserRole.Viewer) çağrısını yapın (call)

Kendin dene

-- Kodu buraya yazın
-- 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