Elvis operator
One of the most common scenarios when we have a nullable type is to use the value if it is not null, and a default if otherwise. For example, in Java we might usually write code like this:
String postcode = null if (address == null) { postcode = "No Postcode" } else { if (address.getPostcode() == null) { postcode = "No Postcode" } else { postcode = address.getPostcode() } }
What Kotlin offers us as a replacement is the so-called Elvis operator ?:
. Supposedly, if you turn your head sideways the operator looks like Elvis' hairstyle, but perhaps it would have been better with a different name. The usage of this is very similar to the ternary if statement in Java.
This infix operator can be placed in between a nullable expression and an expression to use if the nullable expression is indeed null. So the general usage resembles the following:
val nullableName...