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
- Construtores padrão e parametrizados
- Construtores nomeados para uma intenção clara
- Listas de inicialização e redirecionamento
- Construtores factory e const