Menu
Coddy logo textTech

İsteğe Bağlı Parametreler

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

Düz Lua'da argümanları her zaman atlayabilirdiniz — eksik olanlar sessizce nil haline gelirdi ve bunu işlemeyi unutmak klasik bir hata kaynağıydı. Luau bu olasılığı açık hale getirir: bir parametreyi isteğe bağlı (optional) olarak işaretlemek için türüne ? ekleyin.

function greet(name: string, title: string?): string
    if title then
        return `{title} {name}`
    end
    return `Hello, {name}`
end

print(greet("Ada"))          -- Merhaba, Ada
print(greet("Ada", "Dr."))   -- Dr. Ada

string? ifadesi "string veya nil" olarak okunur. Çağıranlar bir metin geçebilir veya argümanı tamamen atlayabilir; ? olmayan parametreler zorunludur ve denetleyici bunları atlayan çağrıları işaretler.

Fonksiyonun içinde, isteğe bağlı bir parametre nil olabilir, bu nedenle using öncesinde kontrol edin — if title then ... end standart kalıptır. Kontrolü atlayıp nil değerini bir dizeye bağlarsanız, Lua'nın size her zaman verdiği aynı çalışma zamanı hatasını alırsınız; tür denetleyicisi sizi önceden uyarır.

challenge icon

Görev

Kolay

username: string (zorunlu) ve displayName: string? (isteğe bağlı) parametrelerini alan, geriye bir string döndüren createUserProfile adında bir fonksiyon oluşturun:

  • Her ikisi de sağlandığında şunu döndürün: "Profile: [displayName] (@[username])"
  • Yalnızca kullanıcı adı sağlandığında şunu döndürün: "Profile: @[username]"

price: number (zorunlu) ve membershipLevel: string? (isteğe bağlı) parametrelerini alan, geriye bir number döndüren calculateDiscount adında bir fonksiyon oluşturun:

  • Bir üyelik seviyesi sağlandığında, %10 indirimli fiyatı döndürün (0.9 ile çarpın)
  • Aksi takdirde fiyatı değiştirmeden döndürün

Aşağıdakileri çağırın ve her birini ayrı bir satırda yazdırın:

  1. createUserProfile("john_doe", "John Doe")
  2. createUserProfile("jane_smith")
  3. calculateDiscount(100, "premium")
  4. calculateDiscount(75)

Kendin dene

-- Kodu buraya yaz
-- createUserProfile(username: string, displayName: string?): string
-- calculateDiscount(price: number, membershipLevel: string?): number
-- sonra dört sonucu yazdı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

Kendi başına pratik yap: Online Lua derleyicisi