In Kotlin, we can declare variable which can hold
Suppose we have a nullable reference
a, we can say "if
a is not null, use it, otherwise use some non-null value
var a: String? = "Nullable String Value"
a can be null. So when we need to access value of
a, then we need to perform safety check, whether it contains value or not. We can perform this safety check by conventional
val b: Int = if (a != null) a.length else -1
But here comes advance operator
Elvis(Operator Elvis :
if...else can be expressed with the Elvis operator as below:
val b = a?.length ?: -1
If the expression to the left of
?: (here :
a?.length) is not null, the elvis operator returns it, otherwise it returns the expression to the right (here:
-1). Right-hand side expression is evaluated only if the left-hand side is null.