0Pricing
Dart Academy · Aula

Listas de inicialização e redirecionamento

Defina valores finais e reutilize construtores.

Listas de inicialização e redirecionamento é uma aula grátis de Dart Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Dart Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Dart Academy inclui 4 aulas no total.

Definindo campos finais

Um campo final deve ser definido antes da execução do corpo do construtor. A lista de inicialização é o lugar perfeito para atribuir seu único valor.

class Circle {
  final double area;
  Circle(double r) : area = 3.14 * r * r;
}

A sintaxe da lista de inicialização

Depois da lista de parâmetros, adicione dois-pontos e atribuições separadas por vírgulas. Essa lista de inicialização é executada antes do corpo do construtor.

Point(int x, int y) : x = x, y = y;

Executada antes do corpo

As atribuições de inicialização acontecem primeiro e, depois, o corpo é executado. Assim, os campos definidos na lista já estão prontos dentro do corpo.

class Box {
  final int n;
  Box(int v) : n = v {
    print(n); // available
  }
}

Calculando valores derivados

Use a lista para calcular um campo a partir dos parâmetros, como um total ou um rótulo, antes que alguém possa acessar o objeto.

class Rect {
  final int area;
  Rect(int w, int h) : area = w * h;
}

Vários inicializadores

Separe várias atribuições com vírgulas. Cada uma define um campo diferente na mesma lista de inicialização.

Point(int a, int b) : x = a, y = b;

assert na lista de inicialização

Você pode inserir um assert na lista para proteger as entradas durante o desenvolvimento, detectando valores inválidos antes que o objeto exista.

Circle(double r) : assert(r > 0), area = 3.14 * r * r;

Redirecionando construtores

Um construtor pode encaminhar para outro usando this depois dos dois-pontos, mantendo a configuração compartilhada em um único lugar.

class Point {
  int x, y;
  Point(this.x, this.y);
  Point.zero() : this(0, 0);
}

Por que redirecionar

O redirecionamento evita repetir atribuições de campos. O construtor nomeado apenas chama o principal, mantendo sua lógica DRY.

Point.origin() : this(0, 0);

Corpos de redirecionamento permanecem vazios

Um construtor que redireciona não tem corpo. Ele apenas encaminha para o destino com this(...), que realiza todo o trabalho.

class User {
  String name;
  User(this.name);
  User.anon() : this("anon");
}

Ordem das operações

Lembre-se do fluxo: a lista de inicialização e qualquer redirecionamento são executados primeiro; depois, vem o corpo. Defina os campos finais na lista e faça tarefas extras no corpo.

Lista de inicialização versus corpo

Use a lista para atribuir campos, especialmente campos finais; use o corpo para lógicas como imprimir, validar além do assert ou chamar métodos.

Verificação rápida

Verificação rápida sobre listas de inicialização.

Recapitulação: inicialização e redirecionamento

Agora você pode usar uma lista de inicialização para definir campos finais e calcular valores, proteger entradas com assert e redirecionar um construtor para outro com this. 🔀

Perguntas Frequentes

A aula “Listas de inicialização e redirecionamento” é grátis?

Sim — o texto completo de “Listas de inicialização e redirecionamento” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Dart Academy, atualize para CoddyKit PRO. O curso de Dart Academy inclui 4 aulas no total.

O que vou aprender em “Listas de inicialização e redirecionamento”?

Defina valores finais e reutilize construtores. Você pratica Dart Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Dart Academy?

Nenhuma experiência prévia é necessária. Dart Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “Listas de inicialização e redirecionamento”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Dart Academy?

Sim. Cada aula de Dart Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Construtores padrão e parametrizados
  2. Construtores nomeados para uma intenção clara
  3. Listas de inicialização e redirecionamento
  4. Construtores factory e const
← Voltar para Dart Academy