本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点
Kotlin 的 Flow
提供了一系列操作符,这些操作符类似于 RxJava,但更加简洁和易于使用。以下是一些常用的 Flow 操作符,分为不同类别:
转换操作符
1、 map:
- 对流中的每个元素应用一个给定的变换函数。
flowOf(1, 2, 3).map {
it * 2 } // Produces 2, 4, 6
2、 filter:
- 过滤流中的元素,仅保留满足特定条件的元素。
flowOf(1, 2, 3).filter {
it % 2 == 0 } // Produces 2
3、 transform:
- 更强大的转换操作符,允许发射多个元素或不发射元素。
flowOf(1, 2, 3).transform {
emit(it * 2); emit(it + 1) } // Produces 2, 2, 4, 3, 6, 4
4、 scan:
- 类似于 fold,但会在流中发射每个中间累积值。
flowOf(1, 2, 3).scan(0) {
acc, value -> acc + value } // Produces 0, 1, 3, 6
过滤操作符
1、 filterNot:
- 过滤流中的元素,仅保留不满足特定条件的元素。
flowOf(1, 2