为什么在视图模型中声明变量时使用下划线 kotlin 约定

dev*_*unu 5 android mvvm viewmodel kotlin

在 Android 蓝图示例的视图模型中,Google 使用了以下模式:

private val _dialog = MutableLiveData<Dialog>()
val dialog : LiveData<FindaDialogFragment> = _dialog
Run Code Online (Sandbox Code Playgroud)

我用谷歌搜索了原因。总之,我们限制了访问,以便片段和活动无法修改 viewModel 中的数据。

我理解但无法同情。真的只有一个原因吗?如果是这样,viewModel 中的代码将会更长,以限制对变量的访问。


private val name = MutableLiveData<String>()
Run Code Online (Sandbox Code Playgroud)

另外,在 2 路数据绑定中,仅使用 MutableLiveData。这不符合逻辑。

我想知道使用这种模式是否还有其他原因。

Ale*_*nov 3

真的只有一个原因吗?

是的。

如果是这样,viewModel 中的代码将会更长,以限制对变量的访问。

是的。如果您不想,则不必使用它,只需记录它不打算被修改即可。

在 2 路数据绑定中,仅使用 MutableLiveData。这不符合逻辑。

这是; 2路数据绑定需要修改数据,所以需要MutableLiveData.