Avatar ·

Que signifie le mot-clé suspend dans les coroutines Kotlin ?

Bonjour à tous ! J'ai commencé à étudier les coroutines en Kotlin, mais je n'arrive pas à comprendre ce que fait le mot-clé `suspend` avant une fonction. J'ai lu la documentation, mais les explications sont trop abstraites. Voici un exemple que j'essaie d'écrire : ```kotlin fun fetchUserData(): String { Thread.sleep(2000) // simulation d'une requête longue return "User data loaded" } fun main() { println("Start") val result = fetchUserData() println(result) println("End") } ``` Ce code fonctionne, mais il bloque le thread principal. Je veux faire la même chose avec des coroutines, mais je ne comprends pas pourquoi il faut écrire `suspend` et ce que cela apporte. J'ai essayé d'écrire ceci : ```kotlin suspend fun fetchUserDataSuspend(): String { delay(2000) return "User data loaded" } fun main() { println("Start") val result = fetchUserDataSuspend() // Erreur de compilation ! println(result) println("End") } ``` Le compilateur donne une erreur : "Suspend function 'fetchUserDataSuspend' should be c