Mark a value nullable and branch before using it.

Nullable Basics

NullableBasics.kt
fun main() {
    val nickname: String? = 
    val status: String

    if (nickname == null) {
        status = "missing"
    } else {
        status = "present:${nickname.length}"
    }

    println("nickname=${nickname ?: "guest"}")
    println("status=$status")
}
fun main() {
    val nickname: String? = 
    val status: String

    if (nickname == null) {
        status = "missing"
    } else {
        status = "present:${nickname.length}"
    }

    println("nickname=${nickname ?: "guest"}")
    println("status=$status")
}
fun main() {
    val nickname: String? = 
    val status: String

    if (nickname == null) {
        status = "missing"
    } else {
        status = "present:${nickname.length}"
    }

    println("nickname=${nickname ?: "guest"}")
    println("status=$status")
}
null A `?` after a type means the value can be either present or `null`.