Kotlin协程可以用于生产,它们的实验状态意味着什么?
答案 0 :(得分:97)
更新:从Kotlin 1.3开始,Kotlin协同程序不再具有实验性。
Kotlin协同程序可以而且应该用于生产。这是在Kotlin 1.1中正式发布它们的主要原因。在发布它们后,JetBrains团队承诺保持向后兼容性,以便随着它们的发展在次要版本中引入它们,同时允许人们在复杂的生产应用程序中安全地尝试它们。
简而言之,“实验”和“正常”功能之间的区别在于,对于普通的Kotlin功能,新的东西无法在次要更新中添加,因为有“完全兼容性”保证,而对于实验性功能新的东西可以添加,但没有任何东西可以删除(因为向后兼容性保证)。
实验协同程序使用单独的# but why does this generate a smaller integer size???
pd.Series(range(6), index=list('abcdef'))
包名称,这样当协同程序设计完成并移动到kotlin.coroutines.experimental
包时,旧的编译代码不会中断,但会通过单独的支持继续工作库。
关于他们为什么是“实验性的”的进一步讨论(长篇阅读)以及这个意思在安德烈·布雷斯拉夫的这个forum post中可以找到。
同样的问题适用于协同程序支持库。
当前版本的kotlin.coroutines
专为生产用途而设计。它完全被测试覆盖,许多东西已经优化,所有的更改都是考虑到与以前编译的代码向后兼容的问题。它确实可以作为各种基于协程的东西的测试平台,因此在相应的函数和类的文档中有一些部分被明确标记为“正在进行中”或“不稳定”。但是,默认情况下,kotlinx.coroutines
中的所有公共API都被认为是稳定的,并且如果需要,正在使用适当的迁移辅助工具进行演变。