CodeBlanks Logo Icon CodeBlanks

Generic fonksiyon

fun <T> ile generic fonksiyon öğrenirsin.

Generic fonksiyon

Bir generic fonksiyon, tür parametresi alan bir fonksiyondur. fun <T> ident(t: T): T biçiminde tanımlanır; tür parametresi fonksiyon adından önce yazılır.

Örnek: fun <T> ident(t: T): T { return t }. Bu fonksiyon ident<Int>(5) ya da ident("merhaba") biçiminde çağrılır. İkinci çağrıda Kotlin türü çıkarır; T String olur. Generic fonksiyonlar tür güvenli yardımcılar yazmayı sağlar. Tür parametresi fonksiyon adından ÖNCE yazılır; bu önemli bir ayrıntıdır.

Tür çıkarımı

Bir generic fonksiyon çağrılırken tür parametresi genellikle çıkarılır. Açıkça yazmak isteğe bağlıdır.

Örnek: fun <T> singleton(value: T): List<T> { return listOf(value) }. singleton(5) çağrısında Kotlin T'yi Int olarak çıkarır; sonuç List<Int>'tir. singleton<String>("merhaba") biçiminde açıkça da yazabilirsin. Tür çıkarımı kodu kısa tutar; ama okunabilirlik gerekiyorsa açık tür de yazılır. Derleyici her iki durumda da tür güvenliğini denetler.

Uygulama ident generic fonksiyonu

fun <T> ident(t: T): T generic fonksiyonunu tanımla; gövdesi t'yi döndürsün. main içinde println(ident(42)) ve println(ident("merhaba")) çağrılarını ayrı satırlarda yap.

Başlangıç kodu

Main.kt
// ident generic fonksiyon tanımı
// t: T alır, T döndürür
// main'de Int ve String ile çağır ve yazdır

Örnek çözüm

Main.kt
fun <T> ident(t: T): T {
    return t
}

fun main() {
    println(ident(42))
    println(ident("merhaba"))
}

Beklenen çıktı

42
merhaba

Soru ve cevaplar

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

1 generic fonksiyon parçalarını eşle

Kavram Anlamı
fun <T> ident Tür parametreli imza
(t: T) Tür parametreli parametre
: T Dönüş türü
ident<Int>(5) Çağrı

2 Bir <strong>generic fonksiyon</strong> tanımında tür parametresi nereye yazılır?

  • Dönüş türünden sonra
  • Fonksiyon adından sonra
  • Parametre listesinin sonuna
  • Fonksiyon adından önce, fun ile birlikte Doğru cevap

Açıklama: fun <T> ident biçiminde tür parametresi addan önce yazılır.

3 generic fonksiyon tanımını tamamla

Soru
fun ____ ident(t: T): T {
    return t
}
Cevap
fun <T> ident(t: T): T {
    return t
}

Açıklama: fun <T> ident(t: T) generic fonksiyon tanımıdır.

Orta seviye bölümündeki tüm dersler