Menu
Coddy logo textTech

Luau'da Enum Deseni

Coddy'nin Lua Journey'sinin Luau'ya Giriş bölümünün bir parçası. Ders 51 / 73.

Programlar, küçük ve sabit bir kümeden alınan değerlerle doludur: bir sipariş beklemede, gönderildi veya teslim edildi durumundadır; bir oyuncu yukarı, aşağı, sola veya sağa bakar. Birçok dilde bunun için bir enum anahtar sözcüğü bulunur. Luau'da yoktur ve buna ihtiyacı da yoktur, çünkü zaten sahip olduğunuz iki araç bu işi karşılar.

Desen 1: sabit tablo. Düz bir tablo, anlamlı adları değerlere eşleyerek kodun farklı yerlerine dağılmış "sihirli sayılar"ın yerini alır:

local Status = {
    Pending = 1,
    Active = 2,
    Done = 3,
}

print(Status.Active) -- 2

Bu gerçek bir çalışma zamanı değeridir: Status.Active değerini okuyabilir, bununla karşılaştırma yapabilir ve şimdiye kadar kullandığınız tablolar gibi onu başka yerlere aktarabilirsiniz.

Desen 2: sabit değer birleşimi. Birleşimler bölümünde karşılaştığınız sabit türleri kullanarak, tam dize değerlerinden oluşan bir tür:

type Color = "red" | "green" | "blue"
local favorite: Color = "green" -- ✓
local oops: Color = "yellow"    -- ✗ type error

Birleşim yalnızca denetleyici için vardır ve çalışma zamanında hiçbir maliyeti yoktur; ancak bir değişkenin kümenin dışında bir değer taşıyamayacağını garanti eder. Bu iki desen birbirini tamamlar: tablo, tek bir ad altında çalışma zamanındaki değerleri sağlar; birleşim ise derleme zamanında bir garanti sunar. Bu bölümün ilerleyen kısımlarında, sabit bir tablonun çalışma zamanında değiştirilmesini engelleyen table.freeze ile de karşılaşacaksınız.

Kendin dene

Bu ders bir kod alıştırması içermiyor.

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