Menu
Coddy logo textTech

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');
}
challenge icon

Desafio

Fácil

Crie um programa em Dart que demonstra o operador de acesso null-aware (?.) com um personagem de jogo:

  1. Crie uma variável String anulável chamada playerName e defina-a como null
  2. Crie uma variável int anulável chamada playerScore e defina-a como 100
  3. Use o operador de acesso null-aware (?.) para obter o comprimento do playerName e armazene-o em uma variável chamada nameLength
  4. Imprima a seguinte mensagem: Player name length: X (onde X é o valor de nameLength)
  5. Atualize playerName para "Champion"
  6. Use o operador de acesso null-aware novamente para obter o comprimento atualizado e armazene-o em nameLength
  7. Imprima a mensagem atualizada: Player name length: X (onde X é o novo valor)
  8. 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 4

Quando o objeto é null, ele retorna null em vez de travar:

String? name = null;
int? length = name?.length; // Retorna null

Experimente 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}");
}
quiz iconTeste seus conhecimentos

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