Generic fonksiyon
- Kotlin kursu
- Orta seviye
- Ders 48/116
- 5 dk
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
// 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
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
fun ____ ident(t: T): T {
return t
}
fun <T> ident(t: T): T {
return t
}
Açıklama: fun <T> ident(t: T) generic fonksiyon tanımıdır.