Comment passer une fonction en tant que paramètre à une autre fonction en Kotlin ?
Bonjour ! Je viens de commencer à apprendre Kotlin après Java et j'ai rencontré un problème.
En Java, j'avais l'habitude d'utiliser des interfaces ou des interfaces fonctionnelles (par exemple, `Consumer`, `Runnable`) pour passer un comportement à des méthodes. En Kotlin, comme je l'ai compris, les fonctions sont des objets de première classe et peuvent être passées directement.
Mais je n'arrive pas à écrire la syntaxe correcte. Supposons que j'ai une simple liste de nombres et que je veuille écrire une fonction `processNumbers` qui prend une liste et une fonction de traitement pour chaque élément.
Voici ce que j'essaie de faire :
```kotlin
fun processNumbers(numbers: List, operation: ???) {
for (number in numbers) {
operation(number)
}
}
fun main() {
val numbers = listOf(1, 2, 3, 4, 5)
// Je veux passer ici une fonction qui affiche le carré du nombre
processNumbers(numbers, println(it * it)) // Erreur !
}
```
Je ne comprends pas quel type spécifier pour le paramètre `operation`. J'ai essayé d'écrire `(Int) -> Unit`, mais j'obtiens une erreur.