Avatar ·

O que significa a palavra-chave suspend em corrotinas Kotlin?

Olá a todos! Comecei a estudar corrotinas em Kotlin, mas não consigo entender o que a palavra-chave `suspend` faz antes de uma função. Li a documentação, mas as explicações são muito abstratas.\n\nAqui está um exemplo que estou tentando escrever:\n\n```kotlin\nfun fetchUserData(): String {\n Thread.sleep(2000) // simulação de uma requisição longa\n return "User data loaded"\n}\n\nfun main() {\n println("Start")\n val result = fetchUserData()\n println(result)\n println("End")\n}\n```\n\nEste código funciona, mas bloqueia a thread principal. Quero fazer o mesmo com corrotinas, mas não entendo por que preciso escrever `suspend` e o que isso proporciona.\n\nTentei escrever assim:\n\n```kotlin\nsuspend fun fetchUserDataSuspend(): String {\n delay(2000)\n return "User data loaded"\n}\n\nfun main() {\n println("S