Sobes.tech
Middle

Hoe werken lambda-uitdrukkingen in de programmeertaal Kotlin?

sobes.tech AI

Antwoord van AI

Lambdazinnen in Kotlin stellen anonieme functies voor. Ze kunnen als argument worden doorgegeven of in variabelen worden opgeslagen.

Belangrijke punten:

  • Syntax: Accolades {}. Parameters worden vóór de pijl -> aangegeven, de functielichaam erna. Als er geen parameters zijn, is de pijl optioneel.
  • Impliciete naam it: Als de lambda één parameter heeft, hoeft deze niet expliciet te worden gedeclareerd, en is beschikbaar onder de naam it.
  • Retourwaarde: De laatste uitdrukking in de lambda is de retourwaarde.
  • Sluitingen (Closures): Lambdas kunnen toegang krijgen tot en variabelen uit de scope waarin ze zijn gedefinieerd, wijzigen.

Voorbeelden:

// Lambda zonder parameters
val hello = { println("Hello, world!") }
hello() // Aanroep lambda

// Lambda met één parameter (expliciete declaratie)
val square = { number: Int -> number * number }
println(square(5))

// Lambda met één parameter (gebruik van 'it')
val increment = { it + 1 }
println(increment(10))

// Lambda met meerdere parameters
val sum = { a: Int, b: Int -> a + b }
println(sum(2, 3))

// Lambda als argument van een hogere-orde functie
fun operate(a: Int, b: Int, operation: (Int, Int) -> Int): Int {
    return operation(a, b)
}
println(operate(4, 5, { x, y -> x * y })) // Lambda doorgeven

Vergelijking met anonieme functies (meer details):

Kenmerk Lambda-uitdrukking Anonieme functie
Syntax {} fun (...)
Retourwaarde Laatste uitdrukking Expliciete return
return binnen Retourneert uit de bovenliggende functie (niet-lokaal return) Retourneert uit de anonieme functie (lokaal return)
Gebruik van it Ja (voor één parameter) Nee

Lambdas worden veel gebruikt in Kotlin, vooral met hogere-orde functies (map, filter, forEach, etc.), om beknopte en expressieve code te maken. De compiler optimaliseert het gebruik ervan.