我在跟随一个教程,老师使用ProducerJob
方法来演示Kotlin协程,但我的IDE显示该方法已过时,应该使用ReceiveChannel
代替,但它也提示我应该在协程范围上使用扩展函数,但我好像无法正确实现它。
以下是老师的代码:
fun produceNumbers() : ProducerJob<Int> = produce {
for (x in 1..5) {
println("send $x")
send(x)
}
println("Done")
}
fun main() = runBlocking{
val channel = produceNumbers()
channel.consumeEach {
println(it)
}
println("Main done")
}
以下是我的代码:
fun produceNumbers() : ReceiveChannel<Int> = produce {
for (x in 1..5) {
println("send $x")
send(x)
}
println("Done")
}
fun main() = runBlocking{
val channel = produceNumbers()
channel.consumeEach {
println(it)
}
println("Main done")
}
代码是否编译成功:是 版本号:kotlinx-coroutines-core-0.27.0.eap13
produce
。 - Joffrey