Book Image

Programming Kotlin

Book Image

Programming Kotlin

Overview of this book

Quickly learn the fundamentals of the Kotlin language and see it in action on the web. Easy to follow and covering the full set of programming features, this book will get you fluent in Kotlin for Android.
Table of Contents (20 chapters)
Programming Kotlin
Credits
About the Authors
About the Reviewers
www.PacktPub.com
Customer Feedback
Preface

Smart cast


We have just seen how nullable types are declared. So how do we use a nullable-type when we have one? The first option is to use smart casts. Briefly introduced in Chapter 2, Kotlin Basics, smart casts are a Kotlin feature whereby the compiler tracks conditions inside an if expression. As long as we perform a check that the variable is not null, then the compiler will allow us to access the variable as if it was declared as a non-nullable type:

    fun getName(): String? = ... 
    val name = getName() 
    if (name != null) { 
      println(name.length) 
    } 

Note that we are able to invoke the length function on the name value inside the if expression. This is because the compiler has verified that we cannot be inside that block unless the name references a non-null value.

Note

A null smart cast only works when the variable is either a member val without a backing field, a local val, or a local var that is not mutated between the check and the usage....