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...