Membros estáticos de extensão e conflitos
Resolva conflitos e adicione auxiliares estáticos.
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 extensionsOculte 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)); // 0Os 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. 🧩
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
- Escrever sua primeira extensão
- Extensões em genéricos
- Membros estáticos de extensão e conflitos
- Tipos de extensão para wrappers sem custo