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