gpt4 book ai didi

kotlin - 嵌套的安全通话Null Check Kotlin

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

我需要在ImageView中显示图像,因此我需要确保图像url首先不为null。这三个选项有效吗?
答案数据类

data class Answer(
val id: Long?,
val title: String?,
val answerImage: AnswerImage?
) {
data class AnswerImage(
val x0: AnswerImageData?,
val x1: AnswerImageData?,
val x2: AnswerImageData?
) {
data class AnswerImageData(
val id: String?,
val url: String?
)
}
}
选项1
answer.answerImage?.let { answerImage ->
answerImage.x0?.let { answerImageData ->
answerImageData.url?.let {
//display image
}
}
}
选项2
if (answer.answerImage?.x0?.url != null)
{
//display image
}
选项3
answer.answerImage?.x0?.url?.let {
//display image
}

最佳答案

简短的回答:是的。

  • 选项1:如果您实际上需要使用answerImageanswerImageData做更多的事情,而不仅仅是安全地进行转换,那么它将是一个不错的选择。在这种特定情况下,我们没有使用显式声明这些变量的方法。结论:在这种情况下,选项1并不是一个很好的解决方案,但是它确实起作用。
  • 选项2:应该起作用,因为所有属性都是不可变的。然后,编译器可以推断出下一行(在if范围内),即url属性仍为non-null
  • 选项3:在我看来,这是最好的一种:它是作为代码阅读器处理的最简单的方法,因为通常您会使用以下代码来完成它:.let { safeUrl -> .. }
  • 关于kotlin - 嵌套的安全通话Null Check Kotlin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64135819/

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