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.

Saf Lua'da bağımsız değişkenleri her zaman atlayabilirdiniz: eksik olanlar sessizce nil olurdu ve bunu ele almayı unutmak, hataların klasik bir kaynağıydı. Luau bu olasılığı açık hâle getirir: bir parametrenin türüne ? ekleyerek onu isteğe bağlı olarak işaretleyin.

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?, "string veya nil" olarak okunur. Çağıranlar bir dize gönderebilir veya bağımsız değişkeni tamamen atlayabilir; ? olmayan parametreler gereklidir ve denetleyici, bunları atlayan çağrıları işaretler.

Fonksiyonun içinde isteğe bağlı bir parametre nil olabilir; bu yüzden onu kullanmadan önce kontrol edin: if title then ... end standart kalıptır. Kontrolü atlayıp nil değerini bir dizeyle birleştirirseniz Lua'nın her zaman verdiği çalışma zamanı hatasının aynısını alırsınız; tür denetleyici sizi önce uyarır.

challenge icon

Görev

Kolay

username: string (zorunlu) ve displayName: string? (isteğe bağlı) alan ve string döndüren createUserProfile adlı bir işlev 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ı) alan ve number döndüren calculateDiscount adlı bir işlev oluşturun:

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

Her birini kendi satırında çağırıp yazdırın:

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

Kendin dene

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