Como passar uma função como parâmetro para outra função em Kotlin?
Olá! Comecei a estudar Kotlin depois de Java e me deparei com um problema.
Em Java, eu costumava usar interfaces ou interfaces funcionais (por exemplo, `Consumer`, `Runnable`) para passar comportamento para métodos. Em Kotlin, pelo que entendi, funções são objetos de primeira classe e podem ser passadas diretamente.
Mas não consigo escrever a sintaxe correta. Suponha que eu tenha uma lista simples de números e queira escrever uma função `processNumbers` que recebe uma lista e uma função de manipulação para cada elemento.
Aqui está o que estou tentando fazer:
```kotlin
fun processNumbers(numbers: List, operation: ???) {
for (number in numbers) {
operation(number)
}
}
fun main() {
val numbers = listOf(1, 2, 3, 4, 5)
// Quero passar aqui uma função que imprime o quadrado do número
processNumbers(numbers, println(it * it)) // Erro!
}
```
Não entendo qual tipo especificar para o parâmetro `operation`. Tentei escrever `(Int) -> Unit`, mas recebo um erro.