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