Sobes.tech
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 numele it.
  • 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.