gpt4 book ai didi

android - 是否有一种惯用的方法来处理 if else 分支中的空值?

转载 作者:行者123 更新时间:2023-12-02 12:29:52 24 4
gpt4 key购买 nike

我在想是否有更简洁的方式来表达这段代码。

return if (response.isSuccessful()) {
response.body
else null

这里我指的是else null部分。 Kotlin 中的一个几乎相似的语句是

return response?.let {
it.body
} ?: null

但在上述情况下,我们可以编写相同的代码而无需 ?: null 部分,编译器将自动分配 null 值。那么为什么 Kotlin 的 if 语句需要一个 null else 部分呢?

return if (response.isSuccessful()) {
response.body
}

最佳答案

So why does Kotlin's if statement require a null else part?

因为编译器不知道你要在else分支返回null。就其所知,您可能想做其他事情,例如返回一个随机数,或返回一些默认值,或抛出异常。

But in the above situation, we can write the same code without the ?: null part and the compiler will automatically assign null value.

这是因为如果接收者为 null,则安全调用 (?.) 的计算结果为 null

关于android - 是否有一种惯用的方法来处理 if else 分支中的空值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62732442/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com