Was bedeutet das Schlüsselwort suspend in Kotlin-Koroutinen?
Hallo zusammen! Ich habe angefangen, Koroutinen in Kotlin zu lernen, aber ich verstehe nicht, was das Schlüsselwort `suspend` vor einer Funktion bewirkt. Ich habe die Dokumentation gelesen, aber die Erklärungen sind zu abstrakt.
Hier ist ein Beispiel, das ich zu schreiben versuche:
```kotlin
fun fetchUserData(): String {
Thread.sleep(2000) // Simulation einer langen Anfrage
return "User data loaded"
}
fun main() {
println("Start")
val result = fetchUserData()
println(result)
println("End")
}
```
Dieser Code funktioniert, blockiert aber den Hauptthread. Ich möchte dasselbe mit Koroutinen machen, verstehe aber nicht, warum ich `suspend` schreiben muss und was das bringt.
Ich habe versucht, es so zu schreiben:
```kotlin
suspend fun fetchUserDataSuspend(): String {
delay(2000)
return "User data loaded"
}
fun main() {
println("Start")
val result = fetchUserDataSuspend() // Compiler-Fehler!
println(result)
println("End")
}
```
Der Compiler gibt einen Fehler aus: "Suspend function 'fetchUserDataSuspend' should be c