Olá, Alvaro!
A diferença entre var
e dynamic
é que o var
define o tipo da variável com base no valor que ela recebe na inicialização, enquanto o dynamic
permite que a variável mude de tipo durante a execução do programa.
No seu código de exemplo, você declarou a variável meuNumero
como var
e a inicializou com o valor 7.1
. Nesse caso, o Dart inferiu que o tipo da variável é double
. Por isso, ao imprimir meuNumero.runtimeType
, você obteve o valor double
.
Se você tivesse declarado a variável como dynamic
, como no exemplo a seguir:
dynamic meuNumero;
print(meuNumero.runtimeType);
meuNumero = 7.1;
print(meuNumero.runtimeType);
meuNumero = "Alvaro";
print(meuNumero.runtimeType);
meuNumero = true;
print(meuNumero.runtimeType);
Você teria obtido a mesma saída, pois o dynamic
permite que a variável mude de tipo. No entanto, é importante ressaltar que o uso excessivo de dynamic
pode tornar seu código mais difícil de entender e pode levar a erros em tempo de execução.
Espero ter esclarecido sua dúvida! Se tiver mais alguma pergunta, é só me dizer. Bons estudos!