Kotlin Academy · Lektion

forEach, repeat och forEachIndexed

Utforska hjälpfunktioner för iteration i funktionell stil och när de är bättre än klassiska loopar.

Lektion 3 av 413 steg

forEach, repeat och forEachIndexed är en gratis lektion i Kotlin Academy på CoddyKit. Detta är lektion 3 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Kotlin Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Kotlin Academy innehåller totalt 4 lektioner.

Funktionell iteration

Utöver for erbjuder Kotlin iteration med högre ordningens funktioner: forEach, forEachIndexed och repeat. De gör små loopar mer uttrycksfulla.

Grunderna i forEach

forEach tar emot en lambda och kör den för varje element. Elementet får implicit namnet it.

fun main() {
    val items = listOf("a", "b", "c")
    items.forEach { println(it) }
}

forEach med namngiven parameter

Ge lambdans parameter ett tydligare namn när it blir svårläst.

fun main() {
    val users = listOf("Alice", "Bob", "Charlie")
    users.forEach { name ->
        println("Hello, $name!")
    }
}

repeat för ett fast antal iterationer

repeat(n) kör sitt block exakt n gånger. Lambdan får iterationens index (börjar på 0).

fun main() {
    repeat(5) {
        println("Iteration $it")
    }
}

repeat för sidoeffekter

Använd repeat för enkla åtgärder som ska utföras n gånger: skriva ut en avgränsare, försöka anropa något igen och så vidare.

fun main() {
    repeat(3) { println("-".repeat(20)) }
}

forEachIndexed

forEachIndexed ger både indexet och elementet till lambdan.

fun main() {
    val words = listOf("Hello", "Kotlin", "World")
    words.forEachIndexed { index, word ->
        println("$index: $word")
    }
}

forEach jämfört med for

forEach är kortfattat men saknar break/continue. Använd en traditionell for om du behöver avsluta tidigt.

fun main() {
    val nums = listOf(1, 2, 3, 4, 5)
    // forEach: runs to completion
    nums.forEach { print("$it ") }
    println()
    // for: can break
    for (n in nums) {
        if (n == 3) break
        print("$n ")
    }
    println()
}

Returnera från forEach

Du kan simulera continue i forEach med en etiketterad return@forEach.

fun main() {
    listOf(1, 2, 3, 4).forEach {
        if (it % 2 == 0) return@forEach // skip
        println("odd: $it")
    }
}

forEach på en map

forEach på en map exponerar varje Map.Entry som it; destrukturera posten för bättre läsbarhet.

fun main() {
    val scores = mapOf("Alice" to 9, "Bob" to 7)
    scores.forEach { (name, score) ->
        println("$name -> $score")
    }
}

Kedja repeat med andra anrop

repeat returnerar Unit, så du kan inte kedja det funktionellt. Använd det endast för sidoeffekter.

fun main() {
    var sum = 0
    repeat(10) { sum += it }
    println("Sum 0..9 = $sum") // 45
}

Prestandaanmärkning

För täta loopar över stora samlingar är en vanlig for något snabbare eftersom den undviker att skapa en lambda. För tydlighetens skull bör du föredra forEach.

fun main() {
    val n = 1_000_000
    var sum = 0L
    for (i in 1..n) sum += i
    println(sum)
}

Snabbtest

Vilken konstruktion ger både ett index och ett element till sin lambda?

Sammanfattning

forEach: en lambda per element. forEachIndexed: index + element. repeat(n): loop ett fast antal gånger. Ingen av dem stöder klassisk break — använd for för att avsluta tidigt.

Gratis att börja

Lär dig Kotlin med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
51
Lektioner
203

Vanliga frågor

Är lektionen ”forEach, repeat och forEachIndexed” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Kotlin Academy, inklusive ”forEach, repeat och forEachIndexed”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Kotlin Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”forEach, repeat och forEachIndexed”?

Utforska hjälpfunktioner för iteration i funktionell stil och när de är bättre än klassiska loopar. Ni övar på Kotlin Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Kotlin Academy?

Du behöver inga förkunskaper. Utbildningen i Kotlin Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 3 av 4.

Hur lång tid tar lektionen ”forEach, repeat och forEachIndexed”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Kotlin Academy-lektionen?

Ja. Varje Kotlin Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. for-loopar över intervall och samlingar
  2. while och do-while: när ska de användas
  3. forEach, repeat och forEachIndexed
  4. break, continue och etiketterade returer
← Tillbaka till Kotlin Academy