Birleştirme
- Kotlin kursu
- Orta seviye
- Ders 23/116
- 6 dk
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
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
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
fun main() {
println(Helpers.____())
}
fun main() {
println(Helpers.runAll())
}
Açıklama: runAll tüm yardımcıları çağırır.