Reader small image

You're reading from  Kotlin Design Patterns and Best Practices - Second Edition

Product typeBook
Published inJan 2022
Reading LevelBeginner
PublisherPackt
ISBN-139781801815727
Edition2nd Edition
Languages
Right arrow
Author (1)
Alexey Soshin
Alexey Soshin
author image
Alexey Soshin

Alexey Soshin is a software architect with 15 years of experience in the industry. He started exploring Kotlin when Kotlin was still in beta, and since then has been a big enthusiast of the language. He's a conference speaker, published writer, and the author of a video course titled Pragmatic System Design.
Read more about Alexey Soshin

Right arrow

Dealing with nulls

Nulls are unavoidable, especially if you work with Java libraries or get data from a database. We've already discussed that there are different ways to check whether a variable contains null in Kotlin; for example:

// Will return "String" half of the time and null the other 
// half 
val stringOrNull: String? = if (Random.nextBoolean()) 
  "String" else null  
 
// Java-way check 
if (stringOrNull != null) { 
    println(stringOrNull.length) 
}

We could rewrite this code using the Elvis operator (?:):

val alwaysLength = stringOrNull?.length ?: 0 

If the length is not null, this operator will return its value. Otherwise, it will return the default value we supplied, which is 0 in this case.

If you have a nested object, you can chain those checks. For example, let's have a Response object that contains a Profile, which, in turn, contains the first name and last name fields, which...

lock icon
The rest of the page is locked
Previous PageNext Page
You have been reading a chapter from
Kotlin Design Patterns and Best Practices - Second Edition
Published in: Jan 2022Publisher: PacktISBN-13: 9781801815727

Author (1)

author image
Alexey Soshin

Alexey Soshin is a software architect with 15 years of experience in the industry. He started exploring Kotlin when Kotlin was still in beta, and since then has been a big enthusiast of the language. He's a conference speaker, published writer, and the author of a video course titled Pragmatic System Design.
Read more about Alexey Soshin