Avatar ·

Quand utiliser les fonctions inline en Kotlin et comment affectent-elles les performances ?

Bonjour à tous ! J’ai récemment commencé à apprendre Kotlin et je suis tombé sur une chose appelée fonctions inline. Dans la documentation, il est écrit qu’elles aident à éviter les frais généraux de création d’objets lambda, mais je ne comprends pas vraiment quand il faut réellement les utiliser.\n\nPar exemple, j’ai une simple fonction d’ordre supérieur :\n\n```kotlin\nfun measureTime(action: () -> Unit) {\n val start = System.currentTimeMillis()\n action()\n val end = System.currentTimeMillis()\n println("Time: ${end - start} ms")\n}\n```\n\nJe l’appelle comme ceci :\n\n```kotlin\nmeasureTime {\n Thread.sleep(100)\n println("Hello")\n}\n```\n\nTout fonctionne, mais j’ai lu que sans `inline`, un nouvel objet est créé à chaque fois pour la lambda. Est-ce vraiment un problème ? Quand cela devient-il critique ?\n\nJ’ai aussi vu des exemples avec `reified`