[英]How to print size of flow in kotlin
嘿,我是 kotlin流程的新手。 我正在尝试打印流量大小。 我们知道该列表具有size()
function。 我们是否有类似的 function 用于flow 。
val list = mutableListof(1,2,3)
println(list.size)
output
2
我们如何在流量中获得大小值?
dataMutableStateFlow.collectLatest { data ->
???
}
谢谢
流在任何时候都不知道它的大小,因为有未知数量的未来值要发出。 此外,Flow 不会记录它们过去发出了多少值。
序列有同样的问题。 对于 Flows 和 Sequences,您只能通过对它们执行一些终端操作来获得计数,即迭代所有这些操作。
获得 Flow 大小的唯一方法是做一些遍历整个 Flow 的事情。 例如,您可以在 Flow 上调用暂停 function count()
以获取其大小。 更复杂的方法是创建一个计数变量,然后在collect
调用中增加计数。 但是,计算流量的排放量仅适用于有限的冷流量。 热流(SharedFlow 和 StateFlow)永远不是有限的,许多冷流也是无限的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.