Menu
Coddy logo textTech

Operador de Nulidade

Parte da seção Fundamentos do Journey de Dart da Coddy — lição 28 de 94.

O operador de coalescência nula (??) retorna a expressão à esquerda se não for nula, caso contrário, retorna a expressão à direita.

void main() {
  String? name = 'Dart';
  String displayName = name ?? 'Guest';
  
  print('Hello, $displayName!');
}
void main() {
  String? name = null;
  String displayName = name ?? 'Guest';
  
  print('Hello, $displayName!');
}
void main() {
  int? score;  // Sem valor inicial, por padrão é null
  int displayScore = score ?? 0;
  
  print('Your score: $displayScore');
  
  // Mais adiante no programa, score recebe um valor
  score = 100;
  displayScore = score ?? 0;
  
  print('Your updated score: $displayScore');
}
challenge icon

Desafio

Fácil

Crie um programa que demonstre o operador null-aware (??) em Dart:

  1. Declare uma variável String anulável chamada username e defina-a como null
  2. Declare uma variável int anulável chamada userAge e defina-a como null
  3. Use o operador null-aware para atribuir um valor padrão de "Guest" a uma nova variável displayName se username for null
  4. Use o operador null-aware para atribuir um valor padrão de 18 a uma nova variável displayAge se userAge for null
  5. Imprima os valores com o EXATO seguinte formato:
Username: Guest (default value used)
Age: 18 (default value used)

Em seguida:

  1. Atualize username para "DartUser"
  2. Atualize userAge para 25
  3. Repita os passos 3 e 4 com os valores atualizados
  4. Imprima os valores com o EXATO seguinte formato:
Username: DartUser (original value used)
Age: 25 (original value used)

Folha de consulta

O operador de coalescência nula (??) retorna a expressão à esquerda se ela não for nula, caso contrário retorna a expressão à direita.

String? name = null;
String displayName = name ?? 'Guest';  // Returns 'Guest' since name is null

int? score = 100;
int displayScore = score ?? 0;  // Returns 100 since score is not null

Experimente você mesmo

void main() {
  // Declara variáveis anuláveis
  String? username = _;
  int? userAge = _;
  
  // Usa o operador de coalescência nula para valores padrão
  String displayName = username ?? _;
  int displayAge = userAge ?? _;
  
  // Imprime valores iniciais
  print("Username: $displayName (default value used)");
  print("Age: $displayAge (default value used)");
  
  // Atualiza variáveis
  username = _;
  userAge = _;
  
  // Usa o operador de coalescência nula novamente
  displayName = username _ "Guest";
  displayAge = userAge _ 18;
  
  // Imprime valores atualizados
  print("Username: $displayName (original value used)");
  print("Age: $displayAge (original value used)");
}
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