我读了一些 kotlin 项目示例代码,我发现很多作者喜欢代码 A。
我认为代码B更简单。
1:代码B是个好方法吗?
2:我可以在 Android Studio 中始终使用 private set 代替 private val 吗?
代码A
private val _uiState = MutableStateFlow(InterestsUiState(loading = true))
val uiState: StateFlow<InterestsUiState> = _uiState.asStateFlow()
Run Code Online (Sandbox Code Playgroud)
代码B
var uiState = MutableStateFlow(InterestsUiState(loading = true))
private set
Run Code Online (Sandbox Code Playgroud)
MJ *_*dio 12
A、B 不是同一个代码。
在代码 A 中,定义另一个变量,以防止从类外StateFlow更改值。StateFlow
StateFlow在代码 B 中,您可以从类外更新值。因为你可以参考MutableStateFlow。
变异状态变量本身和变异状态StateFlow是不同的。
观察者观察的StateFlow是当值StateFlow发生变化但StateFlow本身发生变化时收到的事件。
换句话说,您应该使用代码 A 来防止来自外部的意外变异
| 归档时间: |
|
| 查看次数: |
1360 次 |
| 最近记录: |