Middle
Como funcionam as expressões lambda na linguagem de programação Kotlin?
sobes.tech IA
Resposta da IA
As expressões lambda em Kotlin representam funções anónimas. Podem ser passadas como argumentos ou armazenadas em variáveis.
Pontos-chave:
- Sintaxe: Chaves
{}. Os parâmetros são indicados antes da seta->, o corpo da função após. Se não houver parâmetros, a seta é opcional. - Nome implícito do parâmetro
it: Se a lambda tiver um único parâmetro, não é necessário declará-lo explicitamente, e estará disponível sob o nomeit. - Valor de retorno: A última expressão no corpo da lambda é o seu valor de retorno.
- Fechos (Closures): As lambdas podem aceder e modificar variáveis do âmbito em que foram definidas.
Exemplos:
// Lambda sem parâmetros
val hello = { println("Hello, world!") }
hello() // Chamada da lambda
// Lambda com um parâmetro (declaração explícita)
val square = { number: Int -> number * number }
println(square(5))
// Lambda com um parâmetro (uso de 'it')
val increment = { it + 1 }
println(increment(10))
// Lambda com múltiplos parâmetros
val sum = { a: Int, b: Int -> a + b }
println(sum(2, 3))
// Lambda como argumento de uma função de ordem superior
fun operate(a: Int, b: Int, operation: (Int, Int) -> Int): Int {
return operation(a, b)
}
println(operate(4, 5, { x, y -> x * y })) // Passagem de lambda
Comparação com funções anónimas (mais detalhes):
| Característica | Expressão lambda | Função anónima |
|---|---|---|
| Sintaxe | {} |
fun (...) |
| Valor de retorno | Última expressão | return explícito |
return interno |
Retorna da função pai (retorno não local) | Retorna da própria função anónima (retorno local) |
Uso de it |
Sim (para um parâmetro) | Não |
Lambdas são amplamente utilizadas em Kotlin, especialmente com funções de ordem superior (map, filter, forEach, etc.), para criar código conciso e expressivo. O compilador as otimiza.