android - 'let' 在 livedata observable Kotlin 的 lambda 表达式中是什么意思
问题描述
我想知道是否有人可以用livedata解释我在lambda表达式中的let这个词。只是打印lamda表达式吗?我猜有些人用它来不再获得空指针异常?
wordViewModel.allWords.observe(this, Observer { value ->
value?.let { /*DO SOMETHING WITH VALUE ('IT')*/ }
})
解决方案
let()
是 Kotlin 的“作用域函数”。特别是,let()
与安全调用 ( ) 一起使用时,仅在接收者 ( ) 不是?.
时才执行提供给的 lambda 。let()
value
null
由于Observer
接口的定义方式,value
可以null
. 所以,value -> value?.let { //DO OTHER THINKS WITH 'IT' }
基本上说“忽略,但对所有非值null
执行这个 lambda ”。null
推荐阅读
- elastic-stack - ELK(Elastic Stack)服务器运行进程的可视化
- php - 如何将 jquery 数据相应地/单独地填充到卡片中?
- java - 在 JOGL 中遇到 SSBO 问题
- python - 如何获取图像内矩形内的像素值
- python - TypeError: 'str' object is not callable while trying to use python swampy
- swift - Nested UIStackView child in UIScrollView does not stretch to fill
- python - Tkinter how to size fonts and keep alignment
- python - 是否可以仅使用本机库通过 AWS Lambda 向 Slack 发出 POST 请求?
- python - Searches for list occurrences but only with the first item
- javascript - querySelectorAll selection based on css