Search icon
Arrow left icon
All Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletters
Free Learning
Arrow right icon
Kotlin Design Patterns and Best Practices - Second Edition

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

Product type Book
Published in Jan 2022
Publisher Packt
ISBN-13 9781801815727
Pages 356 pages
Edition 2nd Edition
Languages
Author (1):
Alexey Soshin Alexey Soshin
Profile icon Alexey Soshin

Table of Contents (17) Chapters

Preface 1. Section 1: Classical Patterns
2. Chapter 1: Getting Started with Kotlin 3. Chapter 2: Working with Creational Patterns 4. Chapter 3: Understanding Structural Patterns 5. Chapter 4: Getting Familiar with Behavioral Patterns 6. Section 2: Reactive and Concurrent Patterns
7. Chapter 5: Introducing Functional Programming 8. Chapter 6: Threads and Coroutines 9. Chapter 7: Controlling the Data Flow 10. Chapter 8: Designing for Concurrency 11. Section 3: Practical Application of Design Patterns
12. Chapter 9: Idioms and Anti-Patterns 13. Chapter 10: Concurrent Microservices with Ktor 14. Chapter 11: Reactive Microservices with Vert.x 15. Assessments 16. Other Books You May Enjoy

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 chapter is locked
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $15.99/month. Cancel anytime}