如果对象为空,如何运行代码?
在Kotlin中,如果一个对象不为null,我可以运行代码:
data?.let { ... // execute this block if not null }
但如果对象为空,我怎么能执行一个代码块?
只要使用正常的if
:
if (data == null) { // Do something }
您可以使用elvis运算符并使用run { ... }
评估另一个代码块:
data?.let { // execute this block if not null } ?: run { // execute this block if null }
但是这似乎不像一个简单的if
– else
语句if
可读。
另外,您可能会发现这个问答有用:
- 在Kotlin中,处理可空值的惯用方式是什么,引用或转换它们
您可以创建一个扩展函数:
fun Any?.ifNull(block: () -> Unit) { if (this == null) block() }
那么你可以这样做:
data.ifNull { // Do something }