Luau'da Enum Deseni
Coddy'nin Lua Journey'sinin Luau'ya Giriş bölümünün bir parçası. Ders 55 / 80.
Programlar, küçük ve sabit bir kümeden alınan değerlerle doludur: bir sipariş beklemede, kargoya verildi ya da teslim edildi durumundadır; bir oyuncu yukarı, aşağı, sola ya da sağa bakar. Pek çok dilde bunun için bir enum anahtar sözcüğü bulunur. Luau'da böyle bir özellik yoktur ve buna gerek de yoktur; çünkü bu işi zaten sahip olduğunuz iki araç halleder.
Desen 1: sabit tablo. Sıradan bir tablo, anlamlı adları değerlere eşler ve kodun dört bir yanına dağılmış "sihirli sayıları" değiştirir:
local Status = {
Pending = 1,
Active = 2,
Done = 3,
}
print(Status.Active) -- 2Bu, çalışma zamanında kullanılabilen gerçek bir değerdir: Status.Active değerini okuyabilir, onunla karşılaştırma yapabilir ve tıpkı şimdiye kadar kullandığınız tablolar gibi onu başka yerlere aktarabilirsiniz.
Desen 2: literal birleşimi. Birleşimler bölümünde öğrendiğiniz literal türleri kullanarak oluşturulan, tam string değerlerinden oluşan bir tür:
type Color = "red" | "green" | "blue"
local favorite: Color = "green" -- ✓
local oops: Color = "yellow" -- ✗ tür hatasıBirleşim yalnızca denetleyici için vardır ve çalışma zamanında hiçbir maliyeti yoktur; ancak bir değişkenin küme dışındaki herhangi bir değeri almasını engeller. Bu iki desen birbirini tamamlar: tablo, tek bir ad altında çalışma zamanı değerleri sunar; birleşim ise derleme zamanında bir garanti sağlar. Bu bölümün ilerleyen kısımlarında, sabit bir tablonun çalışma zamanında değiştirilmesini önleyen table.freeze ile de tanışacaksınız.
Görev
KolayHer iki enum desenini yan yana deneyin.
- Sabit tablosunu oluşturun:
local Speed = {Slow = 8, Fast = 24}. type Pace = "slow" | "fast"yazın velocal pace: Pace = "fast"tanımlayın.- Önce
Speed.Fast, ardındanpacedeğerini yazdırın.
Kodu Çalıştır düğmesine basın: çıktıda 24 ve fast görünür.
Kendin dene
-- 1) Slow = 8 ve Fast = 24 değerlerini içeren sabit bir Speed tablosu
-- 2) type Pace = "slow" | "fast", ardından local pace: Pace = "fast"
-- 3) Önce Speed.Fast, ardından pace değerini yazdır
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ışma
Parametreleri ve Dönüş Değerlerini Tür BelirtmeAnonim Fonksiyonları Tür BelirtmeDeğer Döndürmeyen Fonksiyonlarİsteğe Bağlı ParametrelerVarsayılan Parametre DeğerleriBoolean Değerler için VarsayılanlarDeğişken Sayıda Parametre Alan FonksiyonlarFonksiyon Türlerini TanımlamaTekrar: Tür Belirtilmiş Fonksiyonlar2Temel Türler
Number, String ve Boolean'any' Türü: Kaçış Yolu'unknown' TürüNil ve İsteğe Bağlı TürlerTür Çıkarımı UygulamadaAçık Tür Ek AçıklamalarıTekrar: Temel Türler Alıştırması5Diğ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öntemi3Türlenmiş Tablolar: Diziler ve Map’ler
Türlenmiş DizilerÖğe Ekleme ve OkumaMap Türü Nedir?Map’leri Tanımlama ve ErişmeTablolar Üzerinde YinelemeKarma Şekilli TablolarBir Izgarayı OkumaBir Izgara Oluşturmatable.unpackÖzet: Diziler ve Map’lerKendi başına pratik yap: Online Luau derleyicisi