Kotlin Academy · Les

Lambdas doorgeven aan functies

Geef lambdas door als argumenten en gebruik de syntaxis voor trailing lambdas.

Les 2 van 413 stappen

Lambdas doorgeven aan functies is een gratis Kotlin Academy-les op CoddyKit. Dit is les 2 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Kotlin Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Kotlin Academy bevat in totaal 4 lessen.

Functies die lambda's accepteren

Een functie van hogere orde is een functie die een functie (zoals een lambda) als parameter accepteert. Zo werken map, filter en forEach.

Een functie van hogere orde declareren

Gebruik een functietype als parametertype.
fun applyTwice(n: Int, op: (Int) -> Int): Int {
    return op(op(n))
}
println(applyTwice(3, { it * 2 }))  // 12

Syntaxis voor een lambda aan het einde

Als de laatste parameter een functie is, kun je de lambda buiten de haakjes plaatsen. Dit is de syntaxis voor een lambda aan het einde.
fun applyTwice(n: Int, op: (Int) -> Int) = op(op(n))

// Standard:
applyTwice(3, { it * 2 })
// Trailing lambda:
applyTwice(3) { it * 2 }

Een lambda aan het einde zonder haakjes

Als de lambda het ENIGE argument is, kun je de haakjes volledig weglaten.
fun execute(block: () -> Unit) = block()

// With parens:
execute({ println("Hello") })
// Without parens (idiomatic):
execute { println("Hello") }

Een lambda-variabele doorgeven

Je kunt een opgeslagen lambda-verwijzing doorgeven met de naam van de variabele.
val double = { n: Int -> n * 2 }
fun applyTwice(n: Int, op: (Int) -> Int) = op(op(n))
println(applyTwice(5, double))  // 20

Functieverwijzingen met ::

Gebruik :: om een benoemde functie door te geven als een argument dat geschikt is voor een lambda.
fun triple(n: Int) = n * 3
fun applyTwice(n: Int, op: (Int) -> Int) = op(op(n))
println(applyTwice(2, ::triple))  // 18

Meerdere lambda-parameters

Een functie kan meerdere lambda-parameters accepteren. Alleen de laatste kan de syntaxis gebruiken waarbij de lambda achter de haakjes staat.
fun transform(
    value: Int,
    before: (Int) -> Int,
    after: (Int) -> Int
) = after(before(value))

println(transform(5, { it * 2 }, { it + 1 }))  // 11

Een lambda doorgeven aan filter

filter accepteert een predicaatlambda: een functie die van een element een Boolean maakt.
val numbers = listOf(1, 2, 3, 4, 5, 6)
val evens = numbers.filter { it % 2 == 0 }
println(evens)  // [2, 4, 6]

Hogere-ordefuncties koppelen

Koppel meerdere aanroepen van hogere-ordefuncties voor expressieve gegevensverwerkingsketens.
val result = (1..10)
    .filter { it % 2 != 0 }  // odds
    .map { it * it }          // square
    .take(3)                  // first 3
println(result)  // [1, 9, 25]

Variabelen vastleggen in lambdas

Lambdas kunnen variabelen uit het omliggende bereik vastleggen (closure). In Kotlin kunnen ze zelfs var vastleggen en wijzigen.
var total = 0
listOf(1, 2, 3, 4).forEach { total += it }
println(total)  // 10

Een lambda retourneren vanuit een functie

Hogere-ordefuncties kunnen ook lambdas retourneren, waarmee je fabrieksfuncties maakt.
fun multiplierOf(factor: Int): (Int) -> Int {
    return { n -> n * factor }
}
val double = multiplierOf(2)
val triple = multiplierOf(3)
println(double(5))  // 10
println(triple(5))  // 15

Korte controle

Wanneer kun je een lambda buiten de haakjes plaatsen met de syntaxis waarbij de lambda achteraan staat?

Samenvatting

Hogere-ordefuncties accepteren lambdas als parameters. Met de syntaxis voor een lambda achteraan plaats je de lambda buiten de haakjes wanneer die als laatste komt. :: geeft verwijzingen naar benoemde functies door. Volgende: de impliciete parameter 'it'!
Gratis beginnen

Leer Kotlin met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
51
Lessen
203

Veelgestelde vragen

Is de les “Lambdas doorgeven aan functies” gratis?

Ja — je kunt hier op het web alle 3 lessen van het leerpad Kotlin Academy, waaronder “Lambdas doorgeven aan functies”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus Kotlin Academy bevat in totaal 4 lessen.

Wat leer ik in “Lambdas doorgeven aan functies”?

Geef lambdas door als argumenten en gebruik de syntaxis voor trailing lambdas. Je oefent met Kotlin Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Kotlin Academy te beginnen?

Ervaring vooraf is niet nodig. Kotlin Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 2 van 4.

Hoe lang duurt de les “Lambdas doorgeven aan functies”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Kotlin Academy?

Ja. Elke les over Kotlin Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Wat is een lambda? Syntaxis en typen
  2. Lambdas doorgeven aan functies
  3. it: de impliciete parameter
  4. filter, map en find op collecties
← Terug naar Kotlin Academy