O que é Null Safety
Parte da seção Fundamentos do Journey de Kotlin da Coddy. Lição 12 de 93.
Em muitas linguagens de programação, um dos erros mais comuns é tentar acessar algo que não existe: um valor null. Isso acontece quando uma variável contém “nada” em vez de dados reais.
Imagine pedir o nome de um usuário, mas ele nunca ter fornecido um. Se o seu código tentar usar esse nome vazio sem verificar antes, o programa travará. Esse tipo de bug é tão comum que foi chamado de "erro de bilhões de dólares".
Solução do Kotlin: segurança contra nulos
Kotlin foi projetado para eliminar essas falhas. Por padrão, as variáveis em Kotlin não podem conter valores nulos:
fun main() {
var name: String = "Alice"
name = null // Erro! Não compila
}O compilador detecta esse problema antes mesmo de o seu código ser executado. É isso que torna Kotlin “seguro contra nulos”: a própria linguagem impede que você use acidentalmente null onde não deveria.
Nas próximas lições, você aprenderá como o Kotlin permite trabalhar com valores que podem ser nulos quando você realmente precisa deles, mantendo seu código seguro contra falhas.
Desafio
FácilDeclare duas variáveis não anuláveis para demonstrar a segurança contra valores nulos do Kotlin:
- Uma variável
Stringchamadausernamecom o valor"Kotlin" - Uma variável
Intchamadascorecom o valor100
Em seguida, imprima ambos os valores em linhas separadas usando println().
Lembre-se: no Kotlin, os tipos regulares (não anuláveis) não podem conter valores
null. O compilador garante que suas variáveis sempre contenham dados válidos.
Experimente você mesmo
fun main() {
// TODO: Escreva seu código abaixo
// Declare uma variável String não-nula chamada 'username' com o valor "Kotlin"
// Declare uma variável Int não-nula chamada 'score' com o valor 100
// Imprima ambos os valores em linhas separadas usando println()
}Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Fundamentos
4Operadores – Parte 1
Operadores aritméticosOperador móduloAtribuição aumentadaOperadores de comparaçãoRecapitulação – Matemática simples7Entrada e Saída Básicas
Função PrintlnTemplates de StringEntrada com ReadLineConversão de TiposRevisão - Anos até a AposentadoriaRevisão - Verdadeiro ou Falso10Funções
Declare uma funçãoParâmetros e argumentosValores de retornoArgumentos nomeadosValores padrãoFunções de expressão únicaRecapitulação — função SigmaRecapitulação — função de validação2Variáveis
Val vs VarInferência de TiposNúmerosStringBooleanoConvenções de NomenclaturaRecapitulação - Inicializar Variáveis5Operadores – Parte 2
Operadores lógicos – Parte 1Operadores lógicos – Parte 2Operadores lógicos – Parte 3Ternário com expressão ifRecapitulação – Lógica simples8Calculadora de Divisão da Conta
Mensagem de Boas-vindasObtendo a Entrada11FizzBuzz com uma Reviravolta
Visão Geral do JogoA Função FizzBuzz3Nullabilidade
O que é Null SafetyTipos anuláveisOperador de chamada seguraOperador ElvisNoções básicas do desafio de funçõesAsserção de não nuloRecapitulação - Acesso seguro6Tomada de Decisões
Instrução IfIf - ElseIf como ExpressãoExpressão WhenWhen com IntervalosRecapitulação - Calculadora Simples9Laços de Repetição
Laço ForLaço WhileLaço Do-WhileBreakContinueIntervalos em LaçosLaço AninhadoRecapitulação - FatorialRecapitulação - Entrada Dinâmica12Fundamentos de Listas
List vs MutableListAcessando ElementosModificando ListasMétodos de ListaPair e TripleRecapitulação - Lista de ProdutosRecapitulação - Lista Invertida15Rastreador de Despesas Diárias
Visão Geral do ProjetoSair do ProgramaPratique por conta própria: Playground de Kotlin