Avatar ·

¿Qué significa la palabra clave suspend en las corrutinas de Kotlin?

¡Hola a todos! Empecé a estudiar corrutinas en Kotlin, pero no logro entender qué hace la palabra clave `suspend` antes de una función. Leí la documentación, pero las explicaciones son demasiado abstractas. Aquí hay un ejemplo que intento escribir: ```kotlin fun fetchUserData(): String { Thread.sleep(2000) // simulación de una solicitud larga return "User data loaded" } fun main() { println("Start") val result = fetchUserData() println(result) println("End") } ``` Este código funciona, pero bloquea el hilo principal. Quiero hacer lo mismo con corrutinas, pero no entiendo por qué necesito escribir `suspend` y qué aporta. Intenté escribir así: ```kotlin suspend fun fetchUserDataSuspend(): String { delay(2000) return "User data loaded" } fun main() { println("Start") val result = fetchUserDataSuspend() // ¡Error de compilación! println(result) println("End") } ``` El compilador da un error: "Suspend function 'fetchUserDataSuspend' should be c