forEach, repeat och forEachIndexed
Utforska hjälpfunktioner för iteration i funktionell stil och när de är bättre än klassiska loopar.
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.
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
- for-loopar över intervall och samlingar
- while och do-while: när ska de användas
- forEach, repeat och forEachIndexed
- break, continue och etiketterade returer