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