生产中可以使用“实验”Kotlin协同程序吗?

Kotlin协同程序可以在生产中使用吗?他们的实验状态是什么意思?

Kotlin协同程序可以也应该用于生产。 这是在Kotlin 1.1正式发布它们的主要原因。 发布了JetBrains团队后,JetBrains团队承诺保持后向兼容性,以适应在次要版本中引入的任何变化,同时允许人们在复杂的生产应用中安全地尝试它们。

简而言之,“实验”和“正常”function之间的区别在于,对于正常的Kotlinfunction来说,由于具有“完全兼容性”的保证,所以不能在小的更新中添加新的function,而对于实验function,但没有东西可以被删除(因为向后兼容保证)。

实验协程使用一个单独的kotlin.coroutines.experimental包名,这样当协程devise完成并转移到kotlin.coroutines包时,旧的编译代码不会中断,但会通过单独的支持库继续工作。

关于为什么他们是“实验性”的进一步讨论(长时间阅读),Andrey Breslav在这个论坛上发现了什么意思。

同样的问题适用于协程支持库。

当前版本的kotlinx.coroutines是为生产使用而devise的。 testing已经很好的覆盖了很多东西,所有的改变都是考虑到与之前编译的代码向后兼容的问题。 它确实可以作为各种基于协程的事物的testing平台,因此在相应的函数和类的文档中,有一些部分明确标记为“正在进行中”或“不稳定”。 但是,默认情况下, kotlinx.coroutines中的所有公共API都被认为是稳定的,并且如果需要的话,可以使用适当的迁移辅助工具进行演化。