Kotlin Null Safety

Working with nullable types in Kotlin

Nullable Types

var name: String? = "John" # nullable String
name = null # can assign null
var age: Int = 25 # non-nullable Int
// age = null // ERROR: cannot be null

Safe Call Operator

val length = name?.length # returns null if name is null
val upper = name?.uppercase() # safe method call

Elvis Operator

val displayName = name ?: "Guest" # use default if null
val len = name?.length ?: 0 # chain with safe call

Not-Null Assertion

val len = name!!.length # throws exception if null

Safe Cast

val str: String? = value as? String # returns null if cast fails

Let Function

name?.let { # execute only if not null
    println(it.length) # it refers to name
}