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