MutableStateflow 值、更新、发出

T D*_*yen 33 setter android kotlin kotlin-stateflow

假设我有一个MutableStateFlow变量。三种情况的主要区别和用法是什么

mutable.value = 1
mutable.emit(2)
mutable.update {3}
Run Code Online (Sandbox Code Playgroud)

Dar*_*han 38

emit()只是一个suspend内部使用mutable.value = newValue.

用于update {} 原子更新,即用于管理/处理并发操作,该操作在内部用于compareAndSet(显然)比较值并查看先前的值是否已更改(例如通过其他线程)。

您可以update {}在这里阅读更多信息:
https://medium.com/geekculture/atomic-updates-with-mutablestateflow-dc0331724405