Toplama
sum, count, fold, reduce
Toplama, CoddyKit'te ücretsiz bir Kotlin Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Kotlin Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Kotlin Academy kursu toplamda 4 dersten oluşur.
Koleksiyonları Toplama
Toplama işlemi, bir koleksiyonu tek bir değere indirger. Kotlin; sum, count, average, max gibi kullanıma hazır işlevlerin yanı sıra genel amaçlı fold ve reduce işlevlerini de sağlar.
sum ve average
sum, sayısal öğeleri toplar; average ise bunların ortalamasını Double olarak döndürür.
fun main() {
val numbers = listOf(2, 4, 6, 8)
println("Sum: ${numbers.sum()}")
println("Average: ${numbers.average()}")
}Sayım
count, isteğe bağlı olarak bir koşul ifadesine göre filtrelenmiş biçimde öğe sayısını döndürür.
fun main() {
val numbers = listOf(1, 2, 3, 4, 5, 6)
println("Total: ${numbers.count()}")
println("Even count: ${numbers.count { it % 2 == 0 }}")
}maxOrNull ve minOrNull
Uç değerleri güvenli bir şekilde bulmak için, boş koleksiyonlarda null döndüren maxOrNull ve minOrNull işlevlerini kullanın.
fun main() {
val numbers = listOf(3, 7, 2, 9, 4)
println("Max: ${numbers.maxOrNull()}")
println("Min: ${numbers.minOrNull()}")
}sumOf ve maxByOrNull
sumOf, her öğe için seçilen değeri toplar; maxByOrNull ise seçilen değeri en büyük olan öğeyi bulur.
data class Item(val name: String, val price: Int)
fun main() {
val items = listOf(Item("a", 10), Item("b", 30), Item("c", 20))
println("Total price: ${items.sumOf { it.price }}")
println("Most expensive: ${items.maxByOrNull { it.price }?.name}")
}fold İşlevi
fold, başlangıç değerinden başlayarak öğeleri tek bir sonuçta birleştirir. Lambda, birikimli değeri ve geçerli öğeyi alır.
fun main() {
val numbers = listOf(1, 2, 3, 4)
val total = numbers.fold(100) { acc, n -> acc + n }
println(total)
}fold Türü Değiştirebilir
Başlangıç değerini sizin sağlamanız sayesinde fold, String gibi herhangi bir türde sonuç oluşturabilir.
fun main() {
val words = listOf("Kotlin", "is", "fun")
val sentence = words.fold("") { acc, w -> if (acc.isEmpty()) w else "$acc $w" }
println(sentence)
}reduce İşlevi
reduce, başlangıç birikimli değeri olarak ilk öğeyi kullanması dışında fold gibidir. Koleksiyon boşsa hata verir ve türü değiştiremez.
fun main() {
val numbers = listOf(1, 2, 3, 4)
val product = numbers.reduce { acc, n -> acc * n }
println(product)
}fold ve İndirgeme
Temel farklar:
foldbir başlangıç değeri alır, boş koleksiyonlarla çalışır ve farklı bir tür döndürebilir.reduceilk öğeden başlar, boş koleksiyonlarda başarısız olur ve öğe türünü korur.
fun main() {
val empty = emptyList<Int>()
println(empty.fold(0) { acc, n -> acc + n })
println("fold is safe on empty lists")
}runningFold ve runningReduce
Her ara birikimli değeri istiyorsanız runningFold ve runningReduce, kısmi sonuçların listesini döndürür.
fun main() {
val numbers = listOf(1, 2, 3, 4)
val sums = numbers.runningFold(0) { acc, n -> acc + n }
println(sums)
}Toplama İşlevini Seçme
Uygun olduklarında özel işlevleri (sum, count, average, maxOrNull) kullanın. Özel birleştirmeler için fold veya reduce işlevlerine başvurun; başlangıç değeri veya tür değişikliği gerektiğinde fold işlevini tercih edin.
Kısa Kontrol
fold ile indirgeme arasındaki temel fark nedir?
Özet
sum, count, average, maxOrNull ve sumOf ile toplama yapmayı; ayrıca genel amaçlı fold işlevini (başlangıç değeri, herhangi bir tür, boş koleksiyonlara karşı güvenli) ve reduce işlevini (ilk öğeyi başlangıç olarak kullanır) öğrendiniz. Sırada haritalar oluşturacak ve iç içe koleksiyonları düzleştireceksiniz.
Sıkça Sorulan Sorular
“Toplama” dersi ücretsiz mi?
Evet — “Toplama” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Kotlin Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Kotlin Academy kursu toplamda 4 dersten oluşur.
“Toplama” dersinde ne öğreneceğim?
sum, count, fold, reduce Kotlin Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Kotlin Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Kotlin Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.
“Toplama” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Kotlin Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Kotlin Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.