一、末端操作符 1、collect 操作符 2、reduce 操作符 3、single 操作符 4、first 操作符 5、fold 操作符 6、toList 操作符 7、toSet 操作符 一、末端操作符 末端操作符 指的是 在 Flow 流最末端 调用 挂起函数 收集元素 的操作符 , 最常见的 末端操作符 就是 collect 操作符 ; 常见的末端操作符 :
扁平化操作符 1、 flatMapConcat: 将流的每个元素转换为流,然后按顺序连接这些流。 代码语言:javascript 代码运行次数:0 运行 AI代码解释 flowOf(1, 2).flatMapConcat { flowOf(it, it + 1) } // Produces 1, 2, 2, 3 2、 flatMapMerge: 将流的每个元素转换为流,然后并发收集这些流。 代码语言:...
flow { emit(1) emit(1) } .toSet().forEach{value-> print(value) } // 1 launchIn 直接触发流的执行,不设置action,入参为coroutineScope 一般不会直接调用,会搭配别的操作符一起使用,如onEach,onCompletion 。返回值是Job。 flow { emit(1) emit(2) }.launchIn ( lifecycleScope ) ...
flowOf(1,2,3).drop(2)// Produces 3 聚合操作符 1、reduce: 将流中的元素两两结合成一个值,只发射最终的累积值。 flowOf(1,2,3).reduce { acc, value -> acc + value }// Produces 6 2、fold: 与reduce类似,但需要一个初始值。 flowOf(1,2,3).fold(10) { acc, value -> acc + value...
转换操作符 1. map:描述:转换流中的每个元素。示例代码:flowOf(1, 2, 3).map { it * it } .collect { println(it) } // 输出: 1, 4, 9 2. filter:描述:过滤流中的元素,只保留满足条件的元素。示例代码:flowOf(1, 2, 3).filter { it % 2 == 1 } .collect { println(it) } //...
• 中间操作符 一般来说是用来执行一些操作,不会立即执行,返回值还是个Flow。 • 末端操作符 会触发流的执行,返回值不是Flow。 创建Flow flow https://kotlin.github.io/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines.flow/flow.html ...
流操作符 本文要讲的操作符: flowwOf,asFlow,map,transform,take,toList,toSet,first,reduce,buffer,collectLast,zip,combine, 流构建器 flowof 可以将 flowOf 内的可变长参数一一发射 flowOf(1, 2, 5, 4).collect {println(it)}复制代码 asFlow ...
reduce 操作符不能变换数据类型。比如,Int 集合的结果不能转换成 String 结果。 2. fold fold 和 reduce 很类似,但是 fold 可以变换数据类型 有时候,我们不需要一个结果值,而是需要继续操 flow,可使用 runningFold 。 flowOf(1, 2, 3).runningFold("a") { a, b -> ...
Kotlin 的Flow提供了一系列操作符,这些操作符类似于 RxJava,但更加简洁和易于使用。以下是一些常用的 Flow 操作符,分为不同类别: 转换操作符 1、map: 对流中的每个元素应用一个给定的变换函数。 flowOf(1, 2, 3).map { it * 2 } // Produces 2, 4, 6 ...
首先,我们通过flowOf函数构造了一个flow对象,里面依次发送了1, 2, 3, 4, 5这几个值。 那么如果直接对这个flow去collect,我们理所应当打印出来的也是1, 2, 3, 4, 5这几个值。 但是这里在collect之前,我们调用了map操作符函数,并在里面做了一下平方运算。...