gpt4 book ai didi

kotlin - 智能转换不转换字符串? !value.isNullOrBlank() 之后的字符串

转载 作者:行者123 更新时间:2023-12-01 12:09:04 24 4
gpt4 key购买 nike

我想仅当它们具有所有字段时才将它们添加到列表对象中,并尝试以下代码:

data class Response(val id: String, val name: String)
val list = mutableListOf<Response>()

val id : String? = "test_id"
val name : String? = "test_name"

if (!id.isNullOrBlank() and !name.isNullOrBlank()) {
list.add(Response(id, name)) // Type mismatch. Required String, Found String?
}

但是我得到了一个错误: Type mismatch. Required String, Found String?什么是正确(和紧凑)的方式来做到这一点?

最佳答案

建议:始终尝试使用 &&而不是按位 and评估您的条件。很少有理由使用按位 and (有一些用例,但在大多数情况下,您只想对您的条件进行短路评估,如果其中一个函数中有一些复杂的计算/服务调用,则更是如此)。

从我所看到和期望的智能类型转换应该工作,更是如此,因为 &&已经起作用了。我没有找到任何合适或匹配的问题,所以你可能想要 open a new ticket为了这。

另请注意,由于 Kotlin contract,智能 Actor 应该可以工作定义于 isNullOrBlank它基本上检查下面的值是否是 null所以它可能与契约(Contract)的评估,和/或函数的内联和/或前者的某些内容结合按位 and 相关。 .

关于kotlin - 智能转换不转换字符串? !value.isNullOrBlank() 之后的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53829307/

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