深入理解Kotlin协程

霍丙乾
前言 为什么要写这本书 我应该算是国内比较早接触和使用Kotlin的开发者了。 知道这门语言完全是个偶然。当时我还在阿里巴巴实习,周末没事去公司蹭吃蹭喝蹭电脑,编译了Hotspot源码觉得还不过瘾,又开始编译IntelliJ IDEA的社区版。 某天下午我遇到件烦心事,编译并不是很顺利。我发现有一种没见过的后缀为kt的文件,顿时感到压力倍增,Groovy和Scala我还没学会呢,怎么又来一个!不过,当时我只是按照说明把Kotlin的环境搭建好,并没有继续理会这门还处在v0.8的语言。 毕业之后我就职于腾讯地图,得益于团队良好的技术氛围以及对新人的鼓励和信任,入职第一年就能有机会负责重构地图SDK,后来为团队贡献了不少公共组件。整个过程中我既充分感受到了Java的魅力,也发现了它在开发效率上的不足。于是我试着用Groovy、Scala甚至Python来开发Android,但都不太理想,最后想起JetBrains家的“小儿子”Kotlin,结果就一发不可收拾。 Lambda,我所欲也;扩展函数,亦我所欲也。二者居然可兼得。后来我的业余时间也从研究“茴香豆的‘茴’有几种写法”变成了研究“这段Java代码用Kotlin能怎么简化”。可是,当时身边的同事和同行似乎并没有对Java感到疲惫,于是我又开始试着录视频、写文章,最终走上了Kotlin的布道之路。 幸运的是,Kotlin在2017年的Google I/O大会上被提为Android开发的一级语言,这着实让它火了一把。那时候绝大多数Android工程师可能都没有听说过这门语言,它有何德何能竟会受到Google的青睐? 当时,我和几个天天因Kotlin的特性而相互“口诛笔伐”的群友们聚到一起,考虑是否要写本书——大家也许需要这样一本书来了解Kotlin。不过,这本书因写作时间很长,耗尽了大家的热情,我们尚未定稿,国内其他Kotli…