kotlin - 我可以在 kotlin 中始终使用私有集而不是私有 val 吗?
问题描述
我阅读了一些 kotlin 项目示例代码,我发现很多作者都喜欢 Code A。
我认为代码 B 更简单。
1:代码 B 是好方法吗?
2:我可以在 Android Studio 中始终使用私有集而不是私有 val 吗?
代码 A
private val _uiState = MutableStateFlow(InterestsUiState(loading = true))
val uiState: StateFlow<InterestsUiState> = _uiState.asStateFlow()
代码 B
var uiState = MutableStateFlow(InterestsUiState(loading = true))
private set
解决方案
A、B 代码不一样。
在代码 A 中,定义另一个变量以防止从类外StateFlow
更改值。StateFlow
在代码 B 中,您可以StateFlow
从课外更新值。因为可以参考MutableStateFlow
。
变异状态变量本身和变异状态StateFlow
是不同的。
当值发生变化但自身发生变化时,观察者StateFlow
会收到事件。StateFlow
StateFlow
换句话说,您应该使用代码 A 来防止来自外部的意外变异
推荐阅读
- python - 解析 XML 在 python 中创建格式不正确的错误
- scala - 将函数内的 Int 更新为全局
- r - str_detect 多列使用cross
- sparql - 查看 sparql 的具体信息
- javascript - 内容丰富的文档HtmlToString 格式链接
- selenium-webdriver - 如何在运行时单击特定图像?
- javascript - 有没有办法存储,然后在每行之后重置一个变量?
- android - AndroidX FragmentActivity 与暗/夜间模式更改不兼容
- apache-kafka - 如何在手动确认 Kafka 消息时使用指数退避
- firebase - 如何在预加载 Web 应用程序期间摆脱显示所有按钮?