Avatar ·

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.