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 as follows:
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's hairstyle, but perhaps it would have been better with a different name. Its use 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 be used if the...