Passando lambdas para funções
Passe lambdas como argumentos e use a sintaxe de lambda à direita.
Passando lambdas para funções é uma aula grátis de Kotlin Academy no CoddyKit. Esta é a aula 2 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.
Funções que aceitam lambdas
Declarando uma função de ordem superior
fun applyTwice(n: Int, op: (Int) -> Int): Int {
return op(op(n))
}
println(applyTwice(3, { it * 2 })) // 12Sintaxe de lambda final
fun applyTwice(n: Int, op: (Int) -> Int) = op(op(n))
// Standard:
applyTwice(3, { it * 2 })
// Trailing lambda:
applyTwice(3) { it * 2 }Lambda final sem parênteses
fun execute(block: () -> Unit) = block()
// With parens:
execute({ println("Hello") })
// Without parens (idiomatic):
execute { println("Hello") }Passando uma variável lambda
val double = { n: Int -> n * 2 }
fun applyTwice(n: Int, op: (Int) -> Int) = op(op(n))
println(applyTwice(5, double)) // 20Referências de função com ::
fun triple(n: Int) = n * 3
fun applyTwice(n: Int, op: (Int) -> Int) = op(op(n))
println(applyTwice(2, ::triple)) // 18Vários parâmetros lambda
fun transform(
value: Int,
before: (Int) -> Int,
after: (Int) -> Int
) = after(before(value))
println(transform(5, { it * 2 }, { it + 1 })) // 11Passando uma lambda para a filtragem
val numbers = listOf(1, 2, 3, 4, 5, 6)
val evens = numbers.filter { it % 2 == 0 }
println(evens) // [2, 4, 6]Encadeando funções de ordem superior
val result = (1..10)
.filter { it % 2 != 0 } // odds
.map { it * it } // square
.take(3) // first 3
println(result) // [1, 9, 25]Captura de variáveis por lambdas
var total = 0
listOf(1, 2, 3, 4).forEach { total += it }
println(total) // 10Retornando uma lambda de uma função
fun multiplierOf(factor: Int): (Int) -> Int {
return { n -> n * factor }
}
val double = multiplierOf(2)
val triple = multiplierOf(3)
println(double(5)) // 10
println(triple(5)) // 15Verificação rápida
Recapitulação
Perguntas Frequentes
A aula “Passando lambdas para funções” é grátis?
Sim — o texto completo de “Passando lambdas para funções” é 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 “Passando lambdas para funções”?
Passe lambdas como argumentos e use a sintaxe de lambda à direita. 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 2 de 4.
Quanto tempo leva a aula “Passando lambdas para funções”?
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