Acesso de Nulidade
Parte da seção Fundamentos do Journey de Dart da Coddy — lição 29 de 94.
O operador de acesso null-aware (?.) acessa com segurança propriedades em objetos potencialmente nulos, prevenindo erros em tempo de execução.
void main() {
String? name = 'Dart';
int? length = name?.length;
print('Name: $name');
print('Length: $length');
}Com valores nulos, ele retorna null em vez de travar:
void main() {
String? name = null;
int? length = name?.length;
print('Name: $name');
print('Length: $length');
}Desafio
FácilCrie um programa em Dart que demonstra o operador de acesso null-aware (?.) com um personagem de jogo:
- Crie uma variável String anulável chamada
playerNamee defina-a como null - Crie uma variável int anulável chamada
playerScoree defina-a como 100 - Use o operador de acesso null-aware (
?.) para obter o comprimento do playerName e armazene-o em uma variável chamadanameLength - Imprima a seguinte mensagem:
Player name length: X(onde X é o valor de nameLength) - Atualize
playerNamepara "Champion" - Use o operador de acesso null-aware novamente para obter o comprimento atualizado e armazene-o em
nameLength - Imprima a mensagem atualizada:
Player name length: X(onde X é o novo valor) - Imprima a pontuação do jogador com este formato:
Player score: 100
Folha de consulta
O operador de acesso null-aware (?.) acessa com segurança propriedades em objetos potencialmente nulos, prevenindo erros em tempo de execução.
Quando o objeto não é null, ele retorna o valor da propriedade:
String? name = 'Dart';
int? length = name?.length; // Retorna 4Quando o objeto é null, ele retorna null em vez de travar:
String? name = null;
int? length = name?.length; // Retorna nullExperimente você mesmo
void main() {
// Declare suas variáveis anuláveis aqui
String? playerName = _;
int? playerScore = _;
// Obtenha o comprimento de playerName usando o operador ?.
int? nameLength = playerName_.length;
// Imprima o comprimento inicial do nome
print("Player name length: ${nameLength}");
// Atualize o playerName
playerName = _;
// Obtenha o comprimento atualizado usando o operador ?.
nameLength = playerName_.length;
// Imprima o comprimento atualizado do nome
print("Player name length: ${nameLength}");
// Imprima a pontuação do jogador
print("Player score: ${playerScore}");
}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