我有一些与此结构类似的代码:
private fun test() : Double {
val a : Double? = 15.0
val b : Double? = 20.0
return if (a == null && b == null) {
0
} else if (a != null && b == null) {
a
} else if (a == null && b != null) {
b
} else {
a+b
}
}
根据我的理解,智能转换应该推断出在最后的“else”语句中,a 和 b 都不能为空,但它似乎并没有推断出这一点,这会导致错误。
智能广播没有按照我期望的方式工作是否有合理的理由,或者它只是没有我想象的那么智能?
它只是没有你想象的那么聪明。
IntelliJ IDEA 的问题跟踪系统中存在大量与智能转换相关的问题。例如https://youtrack.jetbrains.com/issue/KT-6822 https://youtrack.jetbrains.com/issue/KT-6822这是一个子任务https://youtrack.jetbrains.com/issue/KT-2454 https://youtrack.jetbrains.com/issue/KT-2454其中列出了其他可能相关的问题。我会仔细检查这些问题,看看您的问题是否已被跟踪,如果没有,则为此创建一个问题,看看会发生什么。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)