Middle
Come funzionano le espressioni lambda nel linguaggio di programmazione Kotlin?
sobes.tech AI
Risposta dell'AI
Le espressioni lambda in Kotlin rappresentano funzioni anonime. Possono essere passate come argomenti o memorizzate in variabili.
Punti chiave:
- Sintassi: Parentesi graffe
{}. I parametri sono indicati prima della freccia->, il corpo della funzione dopo. Se non ci sono parametri, la freccia è opzionale. - Nome implicito del parametro
it: Se la lambda ha un solo parametro, non è necessario dichiararlo esplicitamente, sarà accessibile con il nomeit. - Valore di ritorno: L'ultima espressione nel corpo della lambda è il suo valore di ritorno.
- Chiusure (Closures): Le lambdas possono accedere e modificare variabili dell'ambito in cui sono state definite.
Esempi:
// Lambda senza parametri
val hello = { println("Hello, world!") }
hello() // Chiamata della lambda
// Lambda con un parametro (dichiarazione esplicita)
val square = { number: Int -> number * number }
println(square(5))
// Lambda con un parametro (uso di 'it')
val increment = { it + 1 }
println(increment(10))
// Lambda con più parametri
val sum = { a: Int, b: Int -> a + b }
println(sum(2, 3))
// Lambda come argomento di una funzione di ordine superiore
fun operate(a: Int, b: Int, operation: (Int, Int) -> Int): Int {
return operation(a, b)
}
println(operate(4, 5, { x, y -> x * y })) // Passaggio di lambda
Confronto con funzioni anonime (più dettagli):
| Caratteristica | Espressione lambda | Funzione anonima |
|---|---|---|
| Sintassi | {} |
fun (...) |
| Valore di ritorno | Ultima espressione | return esplicito |
return interno |
Ritorna dalla funzione genitore (ritorno non locale) | Ritorna dalla funzione anonima (ritorno locale) |
Uso di it |
Sì (per un parametro) | No |
Le lambdas sono ampiamente usate in Kotlin, specialmente con funzioni di ordine superiore (map, filter, forEach, ecc.), per creare codice conciso ed espressivo. Il compilatore le ottimizza.