O que são tipos 'nullable' em Kotlin e como eles funcionam?
sobes.tech IA
Resposta da IA
Os tipos anuláveis em Kotlin são tipos que podem conter tanto um valor quanto null. Eles são explicitamente indicados pelo símbolo ? após o nome do tipo.
O funcionamento baseia-se no sistema de tipos do Kotlin, que impede NullPointerException durante a compilação. O compilador exige uma verificação explícita de null antes de acessar os membros de um objeto de tipo nullable.
As principais formas de trabalhar com segurança com tipos nullable são:
-
Verificação de
nullusandoif:fun printLength(str: String?) { if (str != null) { println(str.length) // Chamada segura após verificação de null } else { println("String null") } } -
Operador de chamada segura (
?.): Retornanullse o objeto fornull, caso contrário, o resultado da chamada.val safeLength: Int? = str?.length // Se str for null, safeLength será null -
Operador Elvis (
?:): Permite fornecer um valor padrão caso a expressão à esquerda do operador sejanull.val lengthOrDefault: Int = str?.length ?: 0 // Se str for null, lengthOrDefault será 0 -
Operador de afirmação não nula (
!!): Converte um tipo nullable em não nullable. Deve ser usado com cautela, pois lançaráNullPointerExceptionse o valor fornull.val assertedLength: Int = str!!.length // Lançará NPE se str for null -
Funções let/run/apply/also com chamada segura:
str?.let { // O código será executado somente se str não for null println("Comprimento da string: ${it.length}") }
O sistema de tipos nullable do Kotlin aumenta significativamente a segurança e reduz a probabilidade de NullPointerException em comparação com linguagens onde null pode ser atribuído a qualquer tipo sem indicação explícita.