Null Safety
Nullable Types
Definição
Kotlin é uma linguagem considerada null safety, ou seja, visa eliminar os NPEs (NullPointerException). Então como solução foi implementado os Nullable Types que tem como indicar explicitamente se uma variável/propriedade aceita null.
É possível declarar uma variável/propriedade/retorno de função como Nullable Type através do uso do ponto de interrogação (?) após o tipo.
A inferência de tipo não é realizada em valores null.
Exemplo
Atribuição correta de valor null
var month: Int? = null Atribuição incorreta de valor null
var day: Int = nullNo caso acima, ocorre um erro de compilação, pois a atribuição de
nullsó é permitida em variáveis do tipo Nullable (?).
Null safe calls
Definição
Para realizar chamadas de funções que retornam um Nullable Type de forma segura (Nullable Safe Calls) é utilizado o operador ?.
Geralmente são úteis em chamadas em cadeia, caso uma propriedade for null, a cadeia é interrompida e retorna null.
Também pode ser usado em atribuições de variáveis, ou seja, se uma das propriedades for null a atribuição não é feita.
Exemplo
val linguagem = "Kotlin"
println(linguagem.length) // 6val linguagem = "Kotlin"
println(linguagem?.substring(0. 2).?length) // 3