String yardımcıları
- Kotlin kursu
- Orta seviye
- Ders 20/116
- 6 dk
String işleme fonksiyonlarını ekler ve test edersin.
String extension function
Bir extension function, mevcut bir türe dışarıdan metot ekler. Tanımda fonksiyon adından önce alıcı tür (ReceiverType.) yazılır. Türün kendisi değişmez.
Örnek: fun String.titleCase(): String { return split(" ").joinToString(" ") { it.replaceFirstChar(Char::uppercase) } }. Bu fonksiyon String'e titleCase metodunu ekler. "merhaba dünya".titleCase() çağrısı Merhaba Dünya döndürür. Extension fonksiyonlar statik olarak çözümlenir; türün kendisinde değişiklik yapmaz.
titleCase fonksiyonu
Bu ders, String türüne titleCase extension'ını ekler. Bu fonksiyon her kelimenin ilk harfini büyütür, gerisini küçültür.
Örnek: fun String.titleCase(): String { return split(" ").joinToString(" ") { word -> word.lowercase().replaceFirstChar { it.uppercase() } } }. split(" ") ile kelimelere ayır, joinToString(" ") ile geri birleştir. replaceFirstChar ilk harfi büyütür. Çağrı: "merhaba dünya".titleCase(). Bu, başlık biçiminde çıktı verir.
Uygulama String.titleCase extension'ı ekle
Mevcut Helpers nesnesinin yanına bir String.titleCase() extension fonksiyonu ekle. Gövdesi split(" ").joinToString(" ") { word -> word.lowercase().replaceFirstChar { it.uppercase() } } döndürsün. main içinde önce Helpers.greet("Ayşe"), sonra "merhaba dünya".titleCase() çağrılarını println ile yazdır.
Başlangıç kodu
object Helpers {
fun greet(name: String): String {
return "Merhaba, $name!"
}
}
// String extension: titleCase
// kelimelerin ilk harfini büyüt
// main'de greet ve titleCase çağırÖrnek çözüm
object Helpers {
fun greet(name: String): String {
return "Merhaba, $name!"
}
}
fun String.titleCase(): String {
return split(" ").joinToString(" ") { word ->
word.lowercase().replaceFirstChar { it.uppercase() }
}
}
fun main() {
println(Helpers.greet("Ayşe"))
println("merhaba dünya".titleCase())
}Beklenen çıktı
Merhaba, Ayşe! Merhaba Dünya
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Extension parçalarını eşle
| Kavram | Anlamı |
|---|---|
fun String.titleCase() |
Alıcı tür ve metot |
split(" ") |
Boşluktan bölme |
joinToString(" ") |
Birleştirme |
"abc".titleCase() |
Çağrı |
2 Bir extension fonksiyon <code>String</code> türüne <code>titleCase</code> metodunu eklemek için nasıl tanımlanır?
- fun String.titleCase(): String Doğru cevap
- class String { fun titleCase() }
- fun titleCase(): String
- extension String.titleCase()
Açıklama: extension'da alıcı tür fonksiyon adından önce yazılır.
3 Extension fonksiyon imzasını tamamla
fun ____.titleCase(): String {
return split(" ").joinToString(" ") { word ->
word.lowercase().replaceFirstChar { it.uppercase() }
}
}
fun String.titleCase(): String {
return split(" ").joinToString(" ") { word ->
word.lowercase().replaceFirstChar { it.uppercase() }
}
}
Açıklama: String alıcı tür, titleCase extension metodudur.