CodeBlanks Logo Icon CodeBlanks

Sayı yardımcıları

Sayı dönüşüm ve hesaplama fonksiyonlarını eklersin.

Int extension

Bu ders Int türüne squared extension'ını ekler. Bu fonksiyon, sayının karesini döndürür.

Örnek: fun Int.squared(): Int { return this * this }. Burada this alıcı değeri, yani çağrıldığı Int'i ifade eder. 5.squared() çağrısı 25 döndürür. Extension fonksiyonlar, alıcı türün metodlarıymış gibi doğal bir söz dizimi sunar; bu yüzden Kotlin'de yardımcı fonksiyonlar için tercih edilir.

Zincirleme çağrılar

Extension fonksiyonlar, normal metotlar gibi zincirlenebilir. Bu, veri işleme akışlarını okunaklı kılar.

Örnek: 5.squared() tek bir çağrıdır. Ama "merhaba dünya".titleCase().length gibi zincirleme mümkündür. Bir extension'ın döndürdüğü tür üzerinde başka bir extension çağrılabilir. Bu derste 5.squared() çağrısı 25 verir; bu sonuç bir Int'tir ve başka Int extension'larına konu olabilir.

Uygulama Int.squared extension'ı ekle

Mevcut Helpers nesnesi ve String.titleCase extension'ının yanına bir Int.squared() extension fonksiyonu ekle. Gövdesi this * this döndürsün. main içinde Helpers.greet("Ayşe"), "merhaba dünya".titleCase() ve 5.squared() çağrılarını println ile yazdır.

Başlangıç kodu

Main.kt
object Helpers {
    fun greet(name: String): String {
        return "Merhaba, $name!"
    }
}

fun String.titleCase(): String {
    return split(" ").joinToString(" ") { word ->
        word.lowercase().replaceFirstChar { it.uppercase() }
    }
}

// Int extension: squared
// sayının karesini döndür
// main'de greet, titleCase, squared çağır

Örnek çözüm

Main.kt
object Helpers {
    fun greet(name: String): String {
        return "Merhaba, $name!"
    }
}

fun String.titleCase(): String {
    return split(" ").joinToString(" ") { word ->
        word.lowercase().replaceFirstChar { it.uppercase() }
    }
}

fun Int.squared(): Int {
    return this * this
}

fun main() {
    println(Helpers.greet("Ayşe"))
    println("merhaba dünya".titleCase())
    println(5.squared())
}

Beklenen çıktı

Merhaba, Ayşe!
Merhaba Dünya
25

Soru ve cevaplar

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

1 <code>fun Int.squared(): Int { return this * this }</code> tanımında <code>this</code> neyi ifade eder?

  • Helpers nesnesini
  • Çağrıldığı Int değerini Doğru cevap
  • Sınıf örneğini
  • Main fonksiyonunu

Açıklama: extension'da this, alıcı türün değeridir.

2 Int extension tanımını tamamla

Soru
fun ____.squared(): Int {
    return this * this
}
Cevap
fun Int.squared(): Int {
    return this * this
}

Açıklama: Int alıcı tür, squared extension metodudur.

3 Int extension parçalarını eşle

Kavram Anlamı
fun Int.squared() Alıcı ve metot
this * this Kare hesabı
5.squared() Çağrı
return 25 Sonuç

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