Menu
CoddyTech

Literal (Sabit) Tipler

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

string gibi türler herhangi bir dizgeye izin verir, ancak bazen yalnızca birkaç belirli değer anlamlıdır. Literal tür, değerin kendisini tür olarak kullanır:

local mode: "dark" = "dark"   -- yalnızca "dark" dizesine izin verilir
local locked: true = true      -- yalnızca true boole değerine izin verilir

Tek başlarına tek değerli türler yalnızca ilginç bir ayrıntıdır. Birleşimlerle birlikte kullanıldıklarında Luau'nun en kullanışlı araçlarından birine dönüşürler: izin verilen değerlerin sıkı biçimde denetlenen bir kümesine:

type Direction = "north" | "south" | "east" | "west"
type GameState = "menu" | "playing" | "paused" | "gameover"

local move: Direction = "north"     -- ✓
local state: GameState = "playing"  -- ✓
-- local bad: Direction = "diagonal" -- ✗ tür hatası!

Artık "nort" gibi bir yazım hatası ya da "diagonal" gibi geçersiz bir değer, siz düzenleme yaparken yakalanır. Düz bir string kullanıldığında ise değer sorunsuzca geçer ve çalışma zamanında hataya yol açar; tabii fark edecek kadar şanslıysanız.

Literal türler büyük/küçük harfe duyarlıdır ve tam eşleşme gerektirir: "North", "north" ile eşleşmez. Dizge literalleri en yaygın örnektir, ancak boolean ve (Luau'nun daha yeni sürümlerinde) sayı literalleri de aynı şekilde çalışır. Dizge literallerinin birleşiminden oluşan bu kalıp, Luau'nun diğer dillerdeki enum'ların yerini nasıl aldığını da gösterir; bunu ilerleyen bir bölümde göreceksiniz.

challenge icon

Görev

Kolay

Yalnızca dört kesin yön adına izin verin.

  1. type Direction = "north" | "south" | "east" | "west" yazın.
  2. local function movePlayer(direction: Direction): string yazıp `Moving {direction}` döndürün.
  3. local playerDirection: Direction = "east" tanımlayın ve movePlayer(playerDirection) çıktısını yazdırın.

Run Code düğmesine basın: çıktı olarak Moving east gösterilir.

Kendin dene

-- 1) type Direction = "north" | "south" | "east" | "west"
-- 2) movePlayer(direction: Direction): string
-- 3) local playerDirection: Direction = "east", ardından hareketi yazdır

Luau'ya Giriş bölümündeki tüm dersler

Kendi başına pratik yap: Online Luau derleyicisi