【问题标题】:What does 'let' mean in lambda expression for livedata observable Kotlin'let' 在 livedata observable Kotlin 的 lambda 表达式中是什么意思
【发布时间】:2019-05-22 19:39:24
【问题描述】:

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

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

【问题讨论】:

  • let 是一个函数,您可以使用 ctrl-j 访问其文档。它说“以this 值作为其参数调用指定的功能块并返回其结果。”

标签: android lambda kotlin let


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-23
    • 2011-02-16
    • 1970-01-01
    • 2017-11-09
    相关资源
    最近更新 更多