CodeBlanks Logo Icon CodeBlanks

Named argümanlar

Named argümanlarla fonksiyon çağırmayı öğrenirsin.

Named argümanlar: isimle çağırma

Çağırırken parametre adını kullanabilirsin: greet(name = "Ayşe", msg = "Selam"). İsimli argümanlar sıraya bağlı değildir; greet(msg = "Selam", name = "Ayşe") de aynı sonucu verir.

fun greet(name: String, msg: String = "Merhaba") {
    println("$msg $name")
}
greet(name = "Ayşe", msg = "Selam")  // Selam Ayşe
greet(msg = "Selam", name = "Ayşe")  // Selam Ayşe

İsimli argümanlar özellikle default parametrenin önündeki zorunlu parametreyi atlamak istediğinde yararlıdır.

Konumlu ve isimli argüman karışımı

Çağrıda konumlu ve isimli argümanları karıştırabilirsin; ancak konumlu olanlar önce gelmelidir. İlk isimli argümandan sonra kalanların hepsi isimli olmalıdır.

fun f(a: Int, b: Int = 0, c: Int = 0)
f(1, c = 3)        // a=1, b=0 (default), c=3
f(1, 2, c = 3)     // a=1, b=2, c=3
// f(c = 3, 1)     // hata: isimli sonrası konumlu olamaz

Bu ilke, hangi argümanın hangi parametreye bindiğinin belirsiz olmamasını sağlar.

Uygulama İsimli argümanla greet fonksiyonunu çağır

Bir fun greet(name: String, msg: String = "Merhaba") tanımla; gövdesi println("$msg $name") yapsın. main içinden greet(name = "Ayşe", msg = "Selam") şeklinde isimli argümanlarla çağır.

Başlangıç kodu

Main.kt
fun main() {
    // greet fonksiyonunu name = "Ayşe", msg = "Selam" ile çağır
}

// greet fonksiyonunu tanımla: msg varsayılanı "Merhaba", gövdesinde "$msg $name" yazdır

Örnek çözüm

Main.kt
fun main() {
    greet(name = "Ayşe", msg = "Selam")
}

fun greet(name: String, msg: String = "Merhaba") {
    println("$msg $name")
}

Beklenen çıktı

Selam Ayşe

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 fun greet(name: String, msg: String = "Hi"); greet(msg = "Hello", name = "Ava") ne yazdırır?

  • Ava Hello
  • Hello Ava Doğru cevap
  • Hi Ava (sıra yüzünden)
  • Exception fırlatır

Açıklama: İsimli argümanlarda sıra önemli değildir; name=Ava, msg=Hello olur.

2 Boşluğu doldur: isimli argüman

Soru
greet(____ = "Ayşe", msg = "Hi")
Cevap
greet(name = "Ayşe", msg = "Hi")

Açıklama: greet(name = "Ayşe", msg = "Hi") isimli argüman çağrısıdır.

3 Çağrı biçimini sonucuyla eşleştir

Kavram Anlamı
greet(name = "Ayşe") İsimli argüman
greet("Ayşe") Konumlu argüman
greet(msg = "Hi") name varsayılanla gelir
greet(name = "Ayşe", msg = "Hi") Tam isimli çağrı

4 fun f(a: Int, b: Int = 0, c: Int = 0); f(1, c = 3) çağrısı ne verir?

  • a=1, b=3, c=0
  • Hata verir
  • a=3, b=1, c=0 Doğru cevap
  • a=1, b=0, c=3

Açıklama: a=1 (konumlu), c=3 (isimli), b=0 (varsayılan) olur.

Başlangıç bölümündeki tüm dersler