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