Dart Academy · Aula

Os tipos dynamic e Object

Entenda os tipos mais abrangentes de Dart e quando usá-los.

Aula 4 de 413 etapas

Os tipos dynamic e Object é uma aula grátis de Dart Academy no CoddyKit. Esta é a aula 4 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.

O Dart também tem tipos abrangentes

Às vezes, você precisa de uma variável que possa armazenar qualquer valor. O Dart oferece dois tipos abrangentes assim: Object e dynamic.

Object armazena qualquer valor com segurança

Um Object pode armazenar qualquer valor não nulo, mas o Dart ainda verifica cada chamada de método com base no tipo Object.

Object thing = 42;
thing = "now text";

Object restringe os métodos

Com Object, você só pode usar métodos compartilhados por todos os valores, como toString. É preciso fazer uma conversão de tipo antes de usar um comportamento específico do tipo.

Object o = "hi";
// o.toUpperCase(); // error

dynamic desativa as verificações

Uma variável dynamic também armazena qualquer valor, mas desativa as verificações no momento da compilação. Os erros só aparecem durante a execução.

dynamic d = "hi";
d.toUpperCase(); // allowed

dynamic pode falhar tarde

Como as verificações ficam desativadas, uma chamada incorreta em um dynamic é compilada sem problemas, mas pode lançar um erro durante a execução. Essa conveniência tem um custo.

dynamic d = 5;
d.toUpperCase(); // runtime error

Object é mais seguro que dynamic

Prefira Object quando realmente precisar aceitar qualquer valor. Assim, você mantém a segurança de tipos e deixa o compilador proteger suas chamadas.

A questão de Object versus Object

Um Object simples não aceita null. Se um valor puder ser null, use a forma anulável Object, para que null também seja permitido.

Object? maybe = null;

Convertendo de volta para um tipo

Extraia um tipo real de um Object usando a conversão as e, depois, chame seus métodos com todas as verificações reativadas.

Object o = "hi";
var up = (o as String).toUpperCase();

Por que dynamic ainda existe

dynamic é útil ao interagir com dados sem tipo, como um JSON de estrutura flexível, cuja estrutura é desconhecida de antemão.

Evite dynamic por padrão

Recorrer a dynamic costuma esconder erros até que os usuários se deparem com eles. Use tipos específicos ou Object, a menos que realmente precise de dynamic.

Escolhendo entre os dois

Precisa aceitar qualquer valor com segurança? Escolha Object. Precisa ignorar verificações para lidar com dados desorganizados? Use dynamic, com moderação e intencionalmente.

Verificação rápida

Qual é a principal diferença entre Object e dynamic?

Recapitulação: dynamic e Object

Você aprendeu que Object armazena qualquer valor com segurança, enquanto dynamic armazena qualquer valor, mas ignora as verificações. Prefira Object ou tipos específicos. 🛡️

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 “Os tipos dynamic e Object” é grátis?

Sim — o texto completo de “Os tipos dynamic e Object” é 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 “Os tipos dynamic e Object”?

Entenda os tipos mais abrangentes de Dart e quando usá-los. 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 4 de 4.

Quanto tempo leva a aula “Os tipos dynamic e Object”?

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. var, final e const explicados
  2. Os tipos fundamentais: int, double, String e bool
  3. Inferência de tipos versus tipos explícitos
  4. Os tipos dynamic e Object
← Voltar para Dart Academy