Avatar ·

Kotlin 协程中 suspend 关键字是什么意思?

大家好!我开始学习 Kotlin 中的协程,但一直不明白函数前的 `suspend` 关键字是做什么的。我读过文档,但解释太抽象了。 这是我尝试写的例子: ```kotlin fun fetchUserData(): String { Thread.sleep(2000) // 模拟长时间请求 return "User data loaded" } fun main() { println("Start") val result = fetchUserData() println(result) println("End") } ``` 这段代码可以运行,但会阻塞主线程。我想用协程做同样的事,但不懂为什么需要写 `suspend` 以及它有什么作用。 我尝试这样写: ```kotlin suspend fun fetchUserDataSuspend(): String { delay(2000) return "User data loaded" } fun main() { println("Start") val result = fetchUserDataSuspend() // 编译错误! println(result) println("End") } ``` 编译器报错:"Suspend function 'fetchUserDataSuspend' should be c