首页 > 解决方案 > 'let' 在 livedata observable Kotlin 的 lambda 表达式中是什么意思

问题描述

我想知道是否有人可以用livedata解释我在lambda表达式中的let这个词。只是打印lamda表达式吗?我猜有些人用它来不再获得空指针异常?

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

标签: androidlambdakotlinlet

解决方案


let()是 Kotlin 的“作用域函数”。特别是,let()与安全调用 ( ) 一起使用时,仅在接收者 ( ) 不是?.时才执行提供给的 lambda 。let()valuenull

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


推荐阅读