我读了一些 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 次 |
最近记录: |