我们说我有一个对象响应。现在我想检查一个布尔变量,成功,在Response下并做一个早期返回是响应不成功。
if(response == null || !response.success){
return;
} //Java version
现在我想像以下一样使用Kotlin的无效安全检查
if(response?.success ?: true){
return
}
如果我没有错,如果响应或成功为空,我们将在if条件内返回true。但是,如果response.success不为null且等于true,我们仍将从函数返回,这不是我想要的。我该如何纠正这种情况?
答案 0 :(得分:6)
我认为你必须这样做
if(!(response?.success ?: false)){
return // null or failed
}
等同于您的java版本。
但请注意:如果null
检查版本更易于阅读。您也可以在Kotlin中使用
你也可以翻转条件
response?.success?.let {
// do something when success
}