我不能在Kotlin中使用?:操作符。我仍然不明白我们应该如何以及何时使用它。有人能告诉我吗?
设想这样一个场景,您需要用户名的长度.用户名本身也可能因为各种原因为空你会得到著名的NullPointerException 如果您试图从这个用户名中获取长度-它是空的。这不是一个好的用户体验。但是,如果当用户名为空时,我们可以返回一些整数值,那么我们的应用程序就不会崩溃!
var username: String? = null
fun main() {
val firstResult: Int = username!!.length //Gives NPE and the app crashes
println(firstResult)
val secondResult: Int = username?.length ?: -1 //By using ?: operator, the app survives with -1 value
println(secondResult)
}
左的一侧?:操作符非空将被考虑。.但是如果为null,然后右的一侧?:操作符将被执行。
猫王操作符(?:)作品。