Null Safety Básica
Parte da seção Fundamentos do Journey de Dart da Coddy — lição 14 de 94.
Segurança de nulos ajuda a prevenir travamentos inesperados no aplicativo controlando quais variáveis podem estar vazias (null).
Por padrão, as variáveis devem conter um valor:
void main() {
String name = 'Dart';
print(name); // Saída: Dart
// Isso causaria problemas:
// name = null; // Não permitido
}Adicione ? após o tipo para permitir valores nulos:
void main() {
String? name = 'Dart';
print(name); // Outputs: Dart
// Agora podemos atribuir null
name = null;
print(name); // Outputs: null
}Você pode declarar variáveis anuláveis de qualquer tipo:
void main() {
int? age; // Sem valor inicial, padrão para null
double? price = 19.99;
bool? isAvailable = true;
print(age); // Saídas: null
print(price); // Saídas: 19.99
print(isAvailable); // Saídas: true
// Podemos alterar qualquer uma dessas para null
price = null;
isAvailable = null;
}
A segurança de nulos ajuda a proteger seu aplicativo contra falhas inesperadas que ocorrem quando seu código tenta usar valores nulos em operações.
Desafio
InicianteCrie um programa em Dart que demonstre a segurança básica de nulos usando o operador ?:
- Declare uma variável String nomeada
usernamee defina-a comonullusando o operador de segurança de nulos?(String?) - Declare uma variável int nomeada
userAgee defina-a comonullusando o operador de segurança de nulos - Imprima ambas as variáveis com rótulos no EXATO formato seguinte:
Username: null
User age: nullEm seguida:
- Atribua o valor
"DartLearner"à variávelusername - Atribua o valor
25à variáveluserAge - Imprima ambas as variáveis novamente com o EXATO mesmo formato de antes
Sua saída deve corresponder exatamente ao formato mostrado acima.
Folha de consulta
Por padrão, as variáveis do Dart não podem ser nulas. Adicione ? após o tipo para permitir valores nulos:
// Non-nullable (default)
String name = 'Dart';
// Nullable with ?
String? name = 'Dart';
name = null; // Now allowedVocê pode declarar variáveis anuláveis de qualquer tipo:
int? age; // Defaults to null
double? price = 19.99;
bool? isAvailable = true;
// All can be set to null
price = null;
isAvailable = null;Experimente você mesmo
void main() {
// Declare suas variáveis que podem ser nulas aqui
String? username = ?;
int? userAge = ?;
// Imprima os valores iniciais com rótulos
print("Username: " + username.toString());
print("User age: " + userAge.toString());
// Atribua novos valores às variáveis
username = ?;
userAge = ?;
// Imprima os valores atualizados com os mesmos rótulos
print("Username: " + username.toString());
print("User age: " + userAge.toString());
}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 2
Operadores de ComparaçãoAND LógicoOR LógicoNOT LógicoOperadores de Teste de TipoResumo - Fazendo Comparações7Trabalhando com Strings
Concatenação de StringsInterpolação de StringsStrings Multi-linhaPropriedades de StringsMétodos Básicos de Strings10Coleções - Básicos de Mapas
O que são Mapas?Criando um MapaAcessando Valores por ChavePares Chave-ValorObtendo o Tamanho do MapaObtendo as ChavesObtendo os ValoresVerificando se uma Chave Existe2Variáveis e Tipos de Dados Básicos
O que são Variáveis?StringsInteiros (int)Double (double)Booleanos (bool)Inferência de Tipo com 'var'Variáveis finalVariáveis constantesConvenções de NomenclaturaNull Safety BásicaResumo - Declarando Variáveis8Fluxo de Controle - Laços
O Laço 'for'O Laço 'while'O Laço 'do-while'Usando 'break' em LaçosUsando 'continue' em LaçosResumo - Repetindo Código3Operadores Parte 1
Operadores AritméticosDivisão InteiraOperador MóduloIncremento e DecrementoAtalhos de AtribuiçãoResumo - Cálculos Simples6Fluxo de Controle - Tomada de Decisões
A Instrução 'if'A Instrução 'else'A Instrução 'else if'Resumo - Decisões SimplesInstruções 'if' AninhadasA Instrução 'switch'9Coleções - Listas Básicas
O que são Listas?Criando uma ListaAcessando por ÍndiceObtendo o Tamanho da ListaAdicionando ElementosRemovendo ElementosVerificando se uma Lista Está VaziaIterando Sobre uma Lista12Funções Avançadas
Parâmetros Posicionais OpcionaisParâmetros NomeadosParâmetros Nomeados ObrigatóriosValores Padrão de ParâmetrosResumo - Parâmetros de Função15Projeto: Calculadora Simples
ConfigurandoDeclarando Número