cap*_*wag 2 android if-statement kotlin
我在想是否有一种更简洁的方式来表达这段代码。
return if (response.isSuccessful()) {
response.body
else null
Run Code Online (Sandbox Code Playgroud)
我在这里指的是else null
部分。Kotlin 中几乎类似的语句是
return response?.let {
it.body
} ?: null
Run Code Online (Sandbox Code Playgroud)
但是在上面的情况下,我们可以在没有该?: null
部分的情况下编写相同的代码,编译器会自动分配空值。那么为什么 Kotlin 的 if 语句需要null
else 部分呢?
return if (response.isSuccessful()) {
response.body
}
Run Code Online (Sandbox Code Playgroud)
那么为什么 Kotlin 的 if 语句需要一个 null else 部分呢?
因为编译器不知道你要null
在else
分支中返回。就其所知,您可能想要做其他事情,例如返回一个随机数,或返回一些默认值,或抛出异常。
但是在上述情况下,我们可以在没有 ?: null 部分的情况下编写相同的代码,编译器会自动分配 null 值。
那是因为安全调用 ( ?.
) 的计算结果为null
接收者是否为null
。
归档时间: |
|
查看次数: |
54 次 |
最近记录: |