我在想,是否有人可以用livedata在lambda表达式中对let这个词进行解释。只是打印lamda表达式?我猜有人用它来获取空指针异常了吗?
wordViewModel.allWords.observe(this, Observer { value ->
value?.let { /*DO SOMETHING WITH VALUE ('IT')*/ }
})
答案 0 :(得分:4)
let()
是Kotlin的“作用域函数”。特别是,将let()
与安全调用(?.
)一起使用时,如果接收者(let()
)不是value
,则仅执行提供给null
的lambda。 / p>
由于定义Observer
接口的方式,value
可以是null
。因此,value -> value?.let { //DO OTHER THINKS WITH 'IT' }
基本上说“忽略null
,但对所有非null
值都执行此lambda”。