Named argümanlar
- Kotlin kursu
- Başlangıç
- Ders 75/116
- 5 dk
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 olamazBu 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
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
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
greet(____ = "Ayşe", msg = "Hi")
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.