Operador de Asserção de Null
Parte da seção Fundamentos do Journey de Dart da Coddy — lição 80 de 94.
O operador de afirmação de não nulidade (!) informa ao Dart que uma variável anulável definitivamente não é nula naquele ponto no código. Ele força o Dart a tratar um tipo anulável como não anulável.
Crie uma variável string anulável:
String? name = 'Dart';
Use o operador de afirmação de nulidade para tratá-lo como não anulável:
String nonNullableName = name!;
print(nonNullableName);
Após executar o código acima, a saída será:
DartTenha cuidado! Se a variável for realmente null, seu programa irá travar:
String? language = null;
// String nonNullable = language!; // This would crash at runtime
Desafio
InicianteNeste desafio, você praticará o uso do Operador de Afirmação de Não Nulo (!) em Dart. Este operador informa ao Dart que uma variável anulável definitivamente não é nula em um ponto específico do seu código.
Complete o código abaixo para usar o operador de afirmação de não nulidade para converter a variável anulável username em uma string não anulável que pode ser atribuída a displayName.
Saída esperada:
Welcome, DartLearner!Folha de consulta
O operador de afirmação de null (!) informa ao Dart que uma variável anulável definitivamente não é null naquele ponto no código. Ele força o Dart a tratar um tipo anulável como não anulável.
String? name = 'Dart';
String nonNullableName = name!;
print(nonNullableName); // Output: Dart
Aviso: Se a variável for de fato null, seu programa falhará em tempo de execução:
String? language = null;
// String nonNullable = language!; // This would crash
Experimente você mesmo
void main() {
// Esta variável String anulável já possui um valor não nulo
String? username = 'DartLearner';
// TODO: Use o operador de asserção de não nulidade (!) para converter username
// de uma String anulável para uma String não anulável
// para que possa ser atribuída a displayName
String displayName;
// Isso exibirá a mensagem de boas-vindas
print('Welcome, $displayName!');
}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 Existe13Null Safety em Profundidade
Entendendo NullTipos NulláveisTipos Não NulláveisOperador de Asserção de NullInicialização TardiaResumo - Lidando com Null de Forma Segura2Variá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