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