实时数据可观察到的Kotlin的lambda表达式中的“ let”是什么意思

时间:2018-12-22 22:57:02

标签: android lambda kotlin let

我在想,是否有人可以用livedata在lambda表达式中对let这个词进行解释。只是打印lamda表达式?我猜有人用它来获取空指针异常了吗?

wordViewModel.allWords.observe(this, Observer { value -> 
    value?.let { /*DO SOMETHING WITH VALUE ('IT')*/ }
})

1 个答案:

答案 0 :(得分:4)

let()是Kotlin的“作用域函数”。特别是,将let()与安全调用(?.)一起使用时,如果接收者(let())不是value,则仅执行提供给null的lambda。 / p>

由于定义Observer接口的方式,value可以是null。因此,value -> value?.let { //DO OTHER THINKS WITH 'IT' }基本上说“忽略null,但对所有非null值都执行此lambda”。