Escrever sua primeira extensão
Adicione novos métodos a um tipo integrado.
Escrever sua primeira extensão é uma aula grátis de Dart Academy no CoddyKit. Esta é a aula 1 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.
Métodos que você não pode adicionar
Você já desejou que int tivesse um método prático que ele simplesmente não possui? Você não pode editar a classe integrada, mas Dart oferece outra forma de fazer isso.
Conheça a extensão
Uma extensão permite adicionar novos métodos a um tipo existente sem criar uma subclasse nem tocar no código-fonte dele. 🎁
extension on String {
// new methods go here
}A estrutura básica
Você escreve extension Name on Type e depois adiciona métodos dentro das chaves. O nome é escolhido por você; o tipo é aquele que está sendo estendido.
extension NumberParsing on String {
int doubled() => int.parse(this) * 2;
}this indica o receptor
Dentro de uma extensão, this se refere ao valor sobre o qual você chamou o método, exatamente como dentro de um método de classe normal.
extension on int {
int squared() => this * this;
}Chame-o como um método real
Depois de definido, seu método parece totalmente nativo. Você o chama com um ponto, assim como os métodos que já acompanham o tipo.
print(5.squared()); // 25Adicione um acessor, não um método
As extensões também podem adicionar acessores. Remova os parênteses e você terá uma leitura limpa, semelhante à de uma propriedade, em qualquer valor.
extension on int {
bool get isEven2 => this % 2 == 0;
}
print(4.isEven2);As extensões são estáticas
A resolução acontece em tempo de compilação, com base no tipo estático. Nenhuma alteração em tempo de execução é feita na classe original.
Dar um nome é opcional
Você pode até escrever uma extensão sem nome. Ela continua funcionando, mas um nome ajuda a ocultá-la ou importá-la posteriormente quando necessário.
extension on double {
String money() => "$" + toStringAsFixed(2);
}Mantenha uma ideia por extensão
Agrupe os auxiliares relacionados sob um nome específico. Extensões pequenas e bem nomeadas são mais fáceis de ler do que uma grande coleção de itens variados.
extension StringCasing on String {
String shout() => toUpperCase() + "!";
}Não é possível adicionar campos
As extensões adicionam métodos e acessores, mas não novos campos de instância. Não há onde armazená-los no objeto original.
Por que isso é poderoso
As extensões oferecem auxiliares legíveis e fáceis de descobrir, sem classes encapsuladoras. Seus tipos usados no dia a dia ganham exatamente o vocabulário de que seu aplicativo precisa.
Verificação rápida
Vamos verificar a sintaxe básica de uma extensão.
Recapitulação: sua primeira extensão
Você aprendeu que uma extension on Type adiciona métodos e acessores a tipos existentes, usa this para representar o receptor e é resolvida estaticamente. 🚀
Perguntas Frequentes
A aula “Escrever sua primeira extensão” é grátis?
Sim — o texto completo de “Escrever sua primeira extensão” é 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 “Escrever sua primeira extensão”?
Adicione novos métodos a um tipo integrado. 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 1 de 4.
Quanto tempo leva a aula “Escrever sua primeira extensão”?
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