我有下面的代码示例。
替换以下空检查+点操作
a != null && a.toInt() == b
使用?.
a?.toInt() == b
“似乎”做同样的工作,甚至更清楚。
但是,正如您在图像中所看到的,IDEA并没有建议更换。
也许这两种表达方式并不对等?
示例代码:
fun main() {
val a: String? = initA()
val b = 1
if (a != null && a.toInt() == b) {
println("true")
} else {
println("false")
}
}
屏幕电容:
1条答案
按热度按时间9q78igpj1#
当我点击帖子的那一刻,我明白了。
如果
b
的类型被更改为nullable,则意味着:这些表达不再是等价的。
如果
a
和b
都为空,则行为将有所不同。