Sayı yardımcıları
- Kotlin kursu
- Orta seviye
- Ders 21/116
- 6 dk
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
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
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
fun ____.squared(): Int {
return this * this
}
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ç |