kotlin协程:如果没有标准库,可以吗?

问题描述 投票:5回答:1

我的问题是理论上的。我对kotlin还是很陌生(仅通过了本教程,没有编写任何实际代码)。

通过阅读语言参考资料,我发现自己对“暂停”是一个关键字感到困惑,但是在关键字列表中找不到“启动”之类的东西。这使我认为存在一些不对称性-“挂起”是编译器功能,而“启动”是库功能。我的理解正确吗?如果是这样,将两者都实现为库功能还是同时将其实现为编译器功能会更好吗?

我一直认为您总是可以使用可用的语言功能来编写自己的标准库,但是我仍然看不到这是否真的适用于这种情况。

TL; DR:我可以使用纯Kotlin启动协程,而不导入任何库(无论多么丑陋)?

kotlin coroutine kotlin-coroutines
1个回答
0
投票

因为协程对于don't support launch的用例有效。因为suspend需要一些specific support from the compiler,并且如果您已经有launch,则suspend 不需要。因为结构化并发是语言功能之上的library framework,并且launch是该特定框架的一部分,所以它会根据语言的需求做出特定的选择。

无需任何库即可启动协程,可以使用startCoroutine完成。 startCoroutine是Kotlin的一部分,而不是库。

© www.soinside.com 2019 - 2024. All rights reserved.