Was ist der Unterschied zwischen fold und reduce in Kotlin und wann verwendet man was?
Hallo! Ich habe kürzlich angefangen, Kotlin zu lernen und bin bei der Arbeit mit Collections auf die Funktionen fold und reduce gestoßen. Ich verstehe, dass beide zur Aggregation von Elementen verwendet werden, kann aber den Unterschied nicht ganz erfassen.
Hier ist ein Beispiel, das mich verwirrt hat. Angenommen, ich habe eine Liste von Zahlen:
```kotlin
val numbers = listOf(1, 2, 3, 4, 5)
```
Ich kann die Summe mit reduce berechnen:
```kotlin
val sumReduce = numbers.reduce { acc, i -> acc + i }
println(sumReduce) // 15
```
Und mit fold:
```kotlin
val sumFold = numbers.fold(0) { acc, i -> acc + i }
println(sumFold) // 15
```
Das Ergebnis ist identisch. Aber mir ist aufgefallen, dass ich bei fold einen Startwert (0) übergebe, bei reduce jedoch nicht. Was passiert, wenn die Liste leer ist? Ich habe es versucht:
```kotlin
val emptyList = listOf()
// val result = emptyList.reduce { ac
Noch keine Antworten.
Anmelden um eine Antwort zu hinterlassen