gpt4 book ai didi

kotlin - 在 StateFlow 中操作集合的正确方法

转载 作者:行者123 更新时间:2023-12-02 16:21:08 26 4
gpt4 key购买 nike

我正在这样创建 MutableStateFlow:

val intSet = MutableStateFlow(HashSet<Int>())

稍后我想更新此流程中的集合:

intSet.value.add(0)

这似乎不起作用(集合更新,但观察者未收到通知)。我发现它的工作方式:

val list = HashSet<Int>(intSet.value)
list.add(0)
intSet.value = list

但它创建了集合的副本,所以它看起来不适合我。有没有更简单的方法来更新 StateFlow 中的集合?

最佳答案

MutableFlow 不检查集合内容的变化。只有当集合引用发生变化时,它才会发出变化。

使用不可变的 Set 并使用 += 运算符添加新元素。这基本上会创建新的 Set 并将触发更改。

val intSetFlow = MutableStateFlow(setOf<Int>())
intSetFlow.value += 0

关于kotlin - 在 StateFlow 中操作集合的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65442588/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com