0Pricing
Dart Academy · Aula

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()); // 25

Adicione 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

  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