Menu
CoddyTech

İsteğe Bağlı Özellikler

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

Her alan her zaman mevcut olmayabilir. Lua'da eksik bir tablo alanını okumak basitçe nil sonucunu verir; bu esneklik sağlar ama attempt to concatenate a nil value gibi hataların ortaya çıkmasına da yol açar.

Luau, bu durumu şeklin içinde açıkça belirtmene olanak tanır: bir alanın türünden sonra ? ekleyerek onu isteğe bağlı olarak işaretle:

type User = {
    name: string,   -- zorunlu
    email: string?, -- isteğe bağlı: string veya nil
}

local alice: User = {name = "Alice", email = "alice@luau.dev"}
local bob: User = {name = "Bob"} -- ✓ uygun, email isteğe bağlı

Bunu daha önce değişkenlerle görmüştün: string?, string | nil ifadesinin kısa yazımıdır. Aynı fikir artık bir şeklin tek tek alanları için de geçerlidir.

İsteğe bağlı bir alan nil olabileceğinden, onu kullanmadan önce kontrol etmelisin. Klasik Lua kalıbı işe yarar ve katı modda denetleyici, dalın içindeki türü daraltır:

if bob.email then
    print(`email: {bob.email}`) -- burada email bir dizgedir
else
    print("no email on file")
end

İsteğe bağlı demek, "bulunmayabilir" demektir. "Herhangi bir tür olabilir" anlamına gelmez. email mevcutsa yine de bir metin olmalıdır.

challenge icon

Görev

Kolay

E-posta adresi eksik olabilecek kişilerin iletişim bilgilerini yazdırın.

  1. type User = {name: string, email: string?}, ardından local mia: User = {name = "Mia", email = "mia@coddy.tech"} ve local leo: User = {name = "Leo"} yazın.
  2. local function printContact(user: User) yazarak `{user.name}: {user.email}` ya da e-posta adresi yoksa `{user.name}: no email` yazdırın.
  3. Önce mia, ardından leo için çağırın.

Run Code düğmesine basın: çıktı olarak Mia: mia@coddy.tech ve Leo: no email görünür.

Kendin dene

-- 1) İsteğe bağlı bir email alanı olan User türünü, ardından mia ve leo'yu tanımla
-- 2) email alanını kontrol eden printContact(user: User) fonksiyonunu tanımla
-- 3) Fonksiyonu önce mia, sonra leo için çağır

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

Kendi başına pratik yap: Online Luau derleyicisi