挂起函数异步返回一个值, 而 Kotlin 的异步流返回多个值, 与 RxJava 中的流类似.
首先介绍一个数据类型, 序列(Sequences)表示一个延迟计算( lazily evaluated )的集合. 这里延迟即意味着异步, 或者惰性求值. 要取得它的值, 迭代它即可, 它有返回一个迭代器 (Iterator) 的方法, 所以可以在迭代器上进行各种方便的操作, 如filter
,take
, map
等. 因为它是惰性求值的, 所以这个集合的元素可能是无限的. 那怎么创建一个序列呢? 可以通过顶层序列构建函数或者扩展函数, 非常方便.
fun foo(): Sequence<Int> = sequence { // 序列构建器
for (i in 1..3) {