Avatar ·

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