Avatar ·

Quand utiliser run, let, apply, also et with en Kotlin ? Exemples et explications

Bonjour à tous ! Je viens de commencer à apprendre Kotlin après Java, et les fonctions de portée (scope functions) : run, let, apply, also et with m'ont beaucoup confus. J'ai lu la documentation, mais je ne comprends toujours pas quand utiliser laquelle.\n\nPar exemple, je vois souvent ce code :\n\n```kotlin\nval numbers = mutableListOf("one", "two", "three")\nnumbers.let { println(it) }\nnumbers.apply { add("four") }\nnumbers.run { println("Size: $size") }\n```\n\nMais pourquoi ne pas simplement écrire `println(numbers)` ou `numbers.add("four")` ? Quelle est la différence entre `let` et `apply` ? Et à quoi sert `also` ?\n\nJ'ai aussi essayé d'initialiser un objet avec une configuration :\n\n```kotlin\nval person = Person().apply {\n name = "John"\n age = 30\n}\n```\n\nCela fonctionne, mais on peut faire la même chose avec `with` :\n\n```kotlin\nval