本篇解析 example-flow-11.kt。探讨如何触发 Flow 的执行并获取最终结果。
1. 核心概念
Flow 是冷的,必须通过末端操作符来启动收集。
常用末端操作符:
- collect:最基础的,逐个处理发射出的值。
- toList / toSet:将流中的所有值收集到集合中。
- first / single:只取第一个值,或确保流中只有一个值。
- reduce / fold:对流中的值进行累加计算。
2. 代码解析 (reduce)
1 | val sum = (1..5).asFlow() |
reduce会将流中的第一个元素作为初始值,然后依次与后续元素进行计算。
3. 开发者感悟
末端操作符是“收网”的过程。在 Android 中,最常用的是 collect(用于更新 UI)和 first(用于从 DataStore 或数据库中获取单次配置信息)。