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ázvemit. - 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.