用“它”替换androidx.lifecycle.Observer

问题描述 投票:0回答:1

Android Studio 3.6

在我的片段中:

import androidx.lifecycle.Observer

bluetoothPageViewModel.isInitModeLiveData().observe(this,
            Observer<Boolean> { isInitMode ->
             if (isInitMode) {
         // do some code
           })

这里是我的ViewModel:

class BluetoothPageViewModel(application: Application) : AndroidViewModel(application) {

private val isInitModeLiveData = MutableLiveData<Boolean>()


 fun isInitModeLiveData(): LiveData<Boolean> {
        return isInitModeLiveData
}

很好,一切正常。很好。

但是我可以像这样替换片段中的代码:

b

luetoothPageViewModel.isInitModeLiveData().observe(this, Observer {
            if (it) {
          // do some code
            }
            })

而且它也可以。为什么?

android kotlin android-viewmodel
1个回答
2
投票

根据设计,如果lambda具有一个参数,则可以将其称为it。您还可以决定命名它-这就是代码的isInitMode ->部分所做的。两者都是正确的,两者的作用完全相同。

此外,命名参数有时(并非总是)可能会增加代码的可读性。

© www.soinside.com 2019 - 2024. All rights reserved.