CodeBlanks Logo Icon CodeBlanks

Birleştirme

Yardımcı fonksiyonları bir kütüphanede birleştirirsin.

Birleştirme

Bu son ders, tüm yardımcıları tek bir runAll metodu altında birleştirir. Helpers nesnesi, tüm extension'ları çağıran bir rapor metodu içerir.

Artık projede şunlar var: object Helpers içinde greet; String.titleCase, Int.squared ve LocalDate.isWeekend extension'ları. Bu derste Helpers içine fun runAll(): String metodu eklenecek. Bu metot tüm yardımcıları çağırıp sonucu tek bir dizgede birleştirir. main de yalnızca Helpers.runAll() çağırır.

runAll ve main

runAll metodu, tüm yardımcıları sırayla çağırır ve sonuçları | ile birleştirir. main yalnızca println(Helpers.runAll()) çağrısı yapar.

Örnek: fun runAll(): String { val g = greet("Ayşe"); val t = "merhaba dünya".titleCase(); val s = 5.squared(); val w = LocalDate.of(2024, 1, 6).isWeekend(); return "$g | $t | $s | $w" }. Bu, tek bir dizgede tüm yardımcıların çıktısını sunar. main böylece sade kalır; tüm iş kütüphanede toplanır. Bu yapı, gerçek kütüphane tasarımının özüdür.

Uygulama runAll metodunu ekle ve main'i sadeleştir

Mevcut kütüphaneyi koru. Helpers nesnesi içine fun runAll(): String metodu ekle. Gövdesi sırayla greet("Ayşe"), "merhaba dünya".titleCase(), 5.squared() ve LocalDate.of(2024, 1, 6).isWeekend() çağrılarını yapsın ve sonuçları | ile birleştirip döndürsün: "$g | $t | $s | $w". main yalnızca println(Helpers.runAll()) çağrısı yapsın.

Başlangıç kodu

Main.kt
import java.time.LocalDate

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 LocalDate.isWeekend(): Boolean {
    val day = dayOfWeek.value
    return day == 6 || day == 7
}

fun main() {
    println(Helpers.greet("Ayşe"))
    println("merhaba dünya".titleCase())
    println(5.squared())
    println(LocalDate.of(2024, 1, 6).isWeekend())
}

// Helpers içine runAll metodu ekle
// tüm yardımcıları çağır, | ile birleştir
// main yalnızca Helpers.runAll çağrısı yapsın

Örnek çözüm

Main.kt
import java.time.LocalDate

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

    fun runAll(): String {
        val g = greet("Ayşe")
        val t = "merhaba dünya".titleCase()
        val s = 5.squared()
        val w = LocalDate.of(2024, 1, 6).isWeekend()
        return "$g | $t | $s | $w"
    }
}

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

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

fun LocalDate.isWeekend(): Boolean {
    val day = dayOfWeek.value
    return day == 6 || day == 7
}

fun main() {
    println(Helpers.runAll())
}

Beklenen çıktı

Merhaba, Ayşe! | Merhaba Dünya | 25 | true

Soru ve cevaplar

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

1 Birleştirme dersinde <code>runAll</code> metodu nereye eklenir?

  • String extension olarak
  • Int extension olarak
  • LocalDate extension olarak
  • Helpers nesnesi içine Doğru cevap

Açıklama: runAll, Helpers nesnesinin bir metodu olarak eklenir.

2 Tüm yardımcıları eşle

Kavram Anlamı
Helpers.greet Selamlama
String.titleCase Başlık biçimi
Int.squared Kare alma
LocalDate.isWeekend Hafta sonu kontrolü

3 main gövdesini tamamla

Soru
fun main() {
    println(Helpers.____())
}
Cevap
fun main() {
    println(Helpers.runAll())
}

Açıklama: runAll tüm yardımcıları çağırır.

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