Dart Academy · Aula

Membros estáticos de extensão e conflitos

Resolva conflitos e adicione auxiliares estáticos.

Aula 3 de 413 etapas

Membros estáticos de extensão e conflitos é 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.

Dois auxiliares com o mesmo nome

Importe duas extensões que adicionam a String um método chamado parse, e Dart deixará de saber qual delas você quis usar.

Por que os conflitos acontecem

Os membros de uma extensão não pertencem ao próprio tipo, portanto dois métodos com o mesmo nome criam uma ambiguidade sobre a qual o compilador se recusa a escolher.

Identifique o erro

Quando isso acontece, Dart informa que a extensão é ambígua e interrompe a execução, em vez de escolher silenciosamente uma delas por você.

"7".parse(); // error: ambiguous between two extensions

Oculte uma ao importar

Use hide na importação para remover pelo nome uma das extensões conflitantes, deixando a outra prevalecer na chamada.

import 'b.dart' hide NumberParsing;

Ou mostre apenas uma

O recurso oposto é show, que importa apenas os nomes listados por você e exclui discretamente os demais.

import 'a.dart' show NumberParsing;

Chame-a explicitamente

Você também pode ser preciso usando uma aplicação explícita: informe o nome da extensão e passe o valor entre parênteses.

NumberParsing("7").parse();

Adicione membros estáticos

As extensões também podem conter membros estáticos. Eles pertencem ao nome da extensão, não aos valores sobre os quais você chama métodos.

extension MathX on num {
  static num clampLow(num x) => x < 0 ? 0 : x;
}

Acesse os membros estáticos pelo nome

Chame um membro estático por meio do nome da extensão, assim como faria com um membro estático de uma classe. O valor receptor não participa.

print(MathX.clampLow(-3)); // 0

Os membros estáticos precisam de um nome

Como você acessa os membros estáticos por meio da extensão, uma extensão sem nome não pode expô-los. Dê um nome a ela para usar membros estáticos.

Membros versus membros estáticos

Membros de instância usam this e acompanham um valor; membros estáticos ignoram o valor e pertencem à própria extensão.

Planeje para evitar conflitos

Dê às extensões e aos membros nomes claros e específicos. Bons nomes evitam a maioria dos conflitos antes mesmo que show ou hide sejam necessários.

Verificação rápida

Um conflito, uma solução simples. Qual funciona?

Recapitulação: membros estáticos e conflitos

Você pode resolver conflitos entre extensões com show, hide ou chamadas explícitas, além de adicionar membros estáticos acessados pelo nome da extensão. 🧩

Grátis para começar

Aprenda Dart com um tutor de IA — grátis

Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.

Cursos
30
Aulas
120

Perguntas Frequentes

A aula “Membros estáticos de extensão e conflitos” é grátis?

Sim — o texto completo de “Membros estáticos de extensão e conflitos” é 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 “Membros estáticos de extensão e conflitos”?

Resolva conflitos e adicione auxiliares estáticos. 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 “Membros estáticos de extensão e conflitos”?

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. Escrever sua primeira extensão
  2. Extensões em genéricos
  3. Membros estáticos de extensão e conflitos
  4. Tipos de extensão para wrappers sem custo
← Voltar para Dart Academy