Os tipos dynamic e Object
Entenda os tipos mais abrangentes de Dart e quando usá-los.
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(); // errordynamic 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(); // alloweddynamic 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 errorObject é 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. 🛡️
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
- var, final e const explicados
- Os tipos fundamentais: int, double, String e bool
- Inferência de tipos versus tipos explícitos
- Os tipos dynamic e Object