Sobes.tech
Middle

Jak fungují lambda výrazy v programovacím jazyce Kotlin?

sobes.tech AI

Odpověď od AI

Výrazy lambda v Kotlinu představují anonymní funkce. Mohou být předávány jako argumenty nebo ukládány do proměnných.

Klíčové body:

  • Syntaxe: Složené závorky {}. Parametry jsou uvedeny před šipkou ->, tělo funkce za ní. Pokud nejsou parametry, šipka je volitelná.
  • Implicitní jméno parametru it: Pokud má lambda jeden parametr, není nutné jej výslovně deklarovat, bude dostupný pod názvem it.
  • Hodnota návratu: Poslední výraz v těle lambdy je její návratová hodnota.
  • Uzávěry (Closures): Lambdy mohou přistupovat a měnit proměnné z oblasti, ve které byly definovány.

Příklady:

// Lambda bez parametrů
val hello = { println("Hello, world!") }
hello() // Volání lambdy

// Lambda s jedním parametrem (explicitní deklarace)
val square = { number: Int -> number * number }
println(square(5))

// Lambda s jedním parametrem (použití `it`)
val increment = { it + 1 }
println(increment(10))

// Lambda s více parametry
val sum = { a: Int, b: Int -> a + b }
println(sum(2, 3))

// Lambda jako argument vyššího řádu
fun operate(a: Int, b: Int, operation: (Int, Int) -> Int): Int {
    return operation(a, b)
}
println(operate(4, 5, { x, y -> x * y })) // Předání lambdy

Porovnání s anonymními funkcemi (podrobněji):

Vlastnost Lambda výraz Anonymní funkce
Syntaxe {} fun (...)
Návratová hodnota Poslední výraz return explicitní
return uvnitř Vrací z nadřazené funkce (ne lokální return) Vrací z anonymní funkce (lokální return)
Použití it Ano (pro jeden parametr) Ne

Lambdy jsou široce používány v Kotlinu, zejména s funkcemi vyššího řádu (map, filter, forEach atd.), pro tvorbu stručného a výstižného kódu. Kompilátor je optimalizuje.