Middle
Cum funcționează expresiile lambda în limbajul de programare Kotlin?
sobes.tech AI
Răspuns de la AI
Expresiile lambda în Kotlin reprezintă funcții anonime. Ele pot fi transmise ca argumente sau stocate în variabile.
Puncte cheie:
- Sintaxă: Paranteze
{}. Parametrii sunt indicați înainte de săgeată->, corpul funcției după. Dacă nu există parametri, săgeata este opțională. - Numele implicit al parametrului
it: Dacă lambda are un singur parametru, nu este necesar să fie declarat explicit, va fi disponibil sub numeleit. - Valoarea de retur: Ultima expresie din corpul lambda este valoarea sa de retur.
- Închideri (Closures): Lambdas pot accesa și modifica variabile din domeniul în care au fost definite.
Exemple:
// Lambda fără parametri
val hello = { println("Hello, world!") }
hello() // Apelarea lambda
// Lambda cu un parametru (declarație explicită)
val square = { number: Int -> number * number }
println(square(5))
// Lambda cu un parametru (utilizarea lui 'it')
val increment = { it + 1 }
println(increment(10))
// Lambda cu mai mulți parametri
val sum = { a: Int, b: Int -> a + b }
println(sum(2, 3))
// Lambda ca argument al unei funcții de ordin superior
fun operate(a: Int, b: Int, operation: (Int, Int) -> Int): Int {
return operation(a, b)
}
println(operate(4, 5, { x, y -> x * y })) // Transmiterea unei lambda
Comparativ cu funcțiile anonime (mai detaliat):
| Caracteristică | Expresie lambda | Funcție anonimă |
|---|---|---|
| Sintaxă | {} |
fun (...) |
| Valoare de retur | Ultima expresie | return explicit |
return în interior |
Returnează din funcția părinte (return non-local) | Returnează din funcția anonimă (return local) |
Utilizarea lui it |
Da (pentru un parametru) | Nu |
Lambdas sunt utilizate pe scară largă în Kotlin, mai ales cu funcții de ordin superior (map, filter, forEach, etc.), pentru a crea cod concis și expresiv. Compilatorul le optimizează utilizarea.