O que é uma lambda? Sintaxe e tipos
Entenda as expressões lambda: sintaxe, tipos de parâmetros e valores de retorno.
O que é uma lambda? Sintaxe e tipos é uma aula grátis de Kotlin Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Kotlin Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Kotlin Academy inclui 4 aulas no total.
Lambdas em uma frase
Uma lambda é uma função anônima — um valor de função que você pode armazenar em uma variável, passar para outra função ou retornar.
Sintaxe básica de lambda
Uma lambda é escrita entre chaves: os parâmetros ficam à esquerda de -> e o corpo, à direita.
fun main() {
val greet = { name: String -> "Hello, $name!" }
println(greet("World"))
}Lambda sem parâmetros
Omita os parâmetros quando não houver nenhum. A última expressão é o valor de retorno.
fun main() {
val random = { (1..6).random() }
println(random()) // some number 1..6
}Lambda com vários parâmetros
Separe os parâmetros com vírgulas. Especifique os tipos ou deixe que sejam inferidos pelo contexto.
fun main() {
val sum = { a: Int, b: Int -> a + b }
println(sum(3, 4)) // 7
}Inferindo tipos de lambda
Quando a lambda é atribuída a uma variável tipada, os tipos dos parâmetros podem ser omitidos.
fun main() {
val multiply: (Int, Int) -> Int = { a, b -> a * b }
println(multiply(6, 7)) // 42
}Anotações de tipo de lambda
O tipo (Int, Int) -> Int descreve uma função que recebe dois Ints e retorna um Int. É assim que as lambdas são tipadas.
fun main() {
val op: (Int) -> Int = { x -> x * x }
println(op(5)) // 25
}Lambda que retorna Unit
Se a lambda não tiver um valor de retorno útil, seu tipo será () -> Unit. Unit é o equivalente de void no Kotlin.
fun main() {
val log: (String) -> Unit = { msg -> println("[LOG] $msg") }
log("Hello")
log("World")
}Armazenando lambdas em uma lista
Lambdas são valores — você pode agrupá-las e chamá-las mais tarde.
fun main() {
val operations: List<(Int) -> Int> = listOf({ it + 1 }, { it * 2 }, { it - 3 })
for (op in operations) println(op(10))
// 11, 20, 7
}Retornando uma lambda
Uma função pode retornar uma lambda, capturando seu ambiente em um fechamento.
fun makeAdder(n: Int): (Int) -> Int = { x -> x + n }
fun main() {
val add5 = makeAdder(5)
println(add5(10)) // 15
println(add5(20)) // 25
}Lambdas que capturam variáveis
As lambdas podem ler e, no caso de var, modificar variáveis do escopo que as envolve.
fun main() {
var counter = 0
val increment = { counter++ }
increment(); increment(); increment()
println(counter) // 3
}Lambdas versus funções anônimas
O Kotlin também tem funções anônimas no estilo fun(x: Int): Int = x * 2. Elas se comportam como lambdas, mas permitem tipos de retorno explícitos e return rotulado.
fun main() {
val square = fun(x: Int): Int { return x * x }
println(square(8)) // 64
}Verificação rápida
O que o tipo (Int) -> String descreve?
Recapitulação
Uma lambda é uma função anônima escrita como { params -> body }. Seu tipo é (ParamTypes) -> ReturnType. As lambdas podem ser armazenadas, passadas, retornadas e capturar variáveis do escopo que as envolve.
Perguntas Frequentes
A aula “O que é uma lambda? Sintaxe e tipos” é grátis?
Sim — o texto completo de “O que é uma lambda? Sintaxe e tipos” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Kotlin Academy, atualize para CoddyKit PRO. O curso de Kotlin Academy inclui 4 aulas no total.
O que vou aprender em “O que é uma lambda? Sintaxe e tipos”?
Entenda as expressões lambda: sintaxe, tipos de parâmetros e valores de retorno. Você pratica Kotlin Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Kotlin Academy?
Nenhuma experiência prévia é necessária. Kotlin Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.
Quanto tempo leva a aula “O que é uma lambda? Sintaxe e tipos”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Kotlin Academy?
Sim. Cada aula de Kotlin Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- O que é uma lambda? Sintaxe e tipos
- Passando lambdas para funções
- it: o parâmetro implícito
- filter, map e find em coleções