Viv*_*odi 5 kotlin kotlin-flow kotlin-stateflow
嘿,我是 kotlin flow的新手。我正在尝试打印流量大小。众所周知,列表具有size()功能。我们有类似的flow函数吗?
val list = mutableListof(1,2,3)
println(list.size)
Run Code Online (Sandbox Code Playgroud)
输出
2
Run Code Online (Sandbox Code Playgroud)
我们如何获得流量中的大小值?
dataMutableStateFlow.collectLatest { data ->
???
}
Run Code Online (Sandbox Code Playgroud)
谢谢
Flow 在任何时刻都不知道其大小,因为要发出的未来值的数量未知。此外,Flows 不会记录它们过去发出了多少值。
序列也有同样的问题。对于流和序列,您只能通过对它们执行一些终端操作(迭代所有操作)来获取计数。
获取 Flow 大小的唯一方法是迭代整个 Flow。例如,您可以调用count()Flow 上的挂起函数来获取其大小。更复杂的方法是创建一个计数变量,然后在调用中增加计数collect。然而,计算流的排放量仅适用于有限的冷流。热流(SharedFlow 和 StateFlow)永远不是有限的,许多冷流也是无限的。
| 归档时间: |
|
| 查看次数: |
2178 次 |
| 最近记录: |