Menu
Coddy logo textTech

Mit Fold akkumulieren

Teil des Abschnitts Logik & Ablauf der Kotlin-Journey von Coddy. Lektion 34 von 63.

fold beginnt mit einem expliziten anfänglichen Akkumulator und verarbeitet die Elemente der Reihe nach. Sein Lambda empfängt den Akkumulator und das nächste Element und gibt den nächsten Akkumulator zurück. Der Anfangswert ist auch das Ergebnis für eine leere Eingabe.

In main:

println(listOf(2, 3, 4).fold(1) { product, value -> product * value })

Der Akkumulator startet bei eins und wird zu zwei, sechs und vierundzwanzig.

fold verwendet seinen anfänglichen Akkumulator als Ergebnis für eine leere Eingabe.

challenge icon

Aufgabe

Mittel

Vervollständige sumWithFold mit den Parametern values: List<Int>. Verwende fold mit dem Anfangswert null, um die Summe der Werte zurückzugeben.

Sofern oben keine strengeren Grenzen angegeben sind, enthalten Sammlungen auf jeder Ebene höchstens 100 Elemente, und ganzzahlige Argumente sowie ganzzahlige Sammlungswerte liegen zwischen -1000 und 1000. Zum Parsen bereitgestellter Text kann ungültige oder außerhalb des zulässigen Bereichs liegende Darstellungen wie beschrieben enthalten.

Gib einen Wert vom Typ Int zurück. Behalte den bereitgestellten Eingabe-/Ausgabecode bei. Er liest skalare Argumente jeweils zeilenweise ein; eine Liste beginnt mit ihrer Anzahl, gefolgt von ihren Elementen, und eine Map beginnt mit ihrer Anzahl an Einträgen, gefolgt von jedem Schlüssel und Wert. Verschachtelte Listen wiederholen für jede Zeile das Format aus Anzahl und Elementen. Das bereitgestellte main gibt den Rückgabewert gefolgt von einem Zeilenumbruch aus. Listen verwenden das standardmäßige Klammerformat von Kotlin; gib keine zusätzlichen Beschriftungen aus.

Probier es selbst

fun sumWithFold(values: List<Int>): Int {
    // Schreibe deine Lösung hier.
    return 0
}
fun main() {
    val valuesCount = readln().toInt()
    val values = mutableListOf<Int>()
    for (i0 in 0 until valuesCount) {
        val valuesItem = readln().toInt()
        values.add(valuesItem)
    }
    println(sumWithFold(values))
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logik & Ablauf

Übe selbstständig: Kotlin-Playground