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
}
})
而且它也可以。为什么?
根据设计,如果lambda具有一个参数,则可以将其称为it
。您还可以决定命名它-这就是代码的isInitMode ->
部分所做的。两者都是正确的,两者的作用完全相同。
此外,命名参数有时(并非总是)可能会增加代码的可读性。