Otra forma de declarar variables
Pues que dart
puede compilar para diversas plataformas y la versatilidad del lenguaje, ademas de que es un lenguaje bastante reciente, pues han tomado lo mejor de otros lenguajes, para que dart
lo tenga de manera nativa, o que si vienes de otros lenguajes se te haga mas familiar o fácil (eso creo yo).
Contamos con unas palabras reservadas con características especiales como son las que veremos a continuación.
var
La palabra reservada var
se usa para declarar una variable, y de manera automática al momento de darle su valor, esta infiere el tipo de esta variable.
Como lo podemos ver el siguiente código:
void main() {
var var1 = 3; // al recibir un int, ya sabe el compilador el tipo de dato que maneja
var var2 = "Hola"; // al recibir un String, ya sabe el compilador el tipo de dato que maneja
print(var1);
print(var2);
}
Cuando no sepamos que tipo de variable u objeto vamos a ocupar podemos usar var
; sin embargo, siempre se recomienda escribir el tipo desde un inicio.
En ocasiones por comodidad, flexibilidad, rapidez hacemos uso de var
. Por ejemplo, es como manejar let
en JavaScript.
dynamic
La palabra reservada dynamic
se usa cuando no sabemos nada del tipo de variable que se va a contener o cuando queremos que no tenga un tipo definido, en otras palabras es un objeto genérico, pero que en cada momento que se le asigne un valor, se infiere el tipo pero, este puede cambiar cada vez que queramos.
No se recomienda en general que se ocupe, pero en ocasiones es como usarlo, pero no se debe abusar de su uso.
El uso mas común es cuando tenemos respuestas de una API.
void main() {
dynamic variable = 3; //inicia siendo un entero
print(variable);
variable = "Hola"; //cambio a un string
print(variable);
variable = 2.5; //cambio a un double
print(variable);
}
const
vs final
En esencia básica ambas palabras hacen lo mismo, pero operan en distinto momento.
const
Generara objetos o variables inmutables. Todo esto antes de compilación. Por ende, se define el tamaño en memoria que tendrá en toda la vida del programa.
Una vez se declara una variable const
ya no se puede modificar de ninguna manera.
Esto lo hacemos cuando no queremos o no necesitamos que se le modifique su valor, esto es conveniente para que el programa sepa la memoria que necesita para dicha variable.
Todo este proceso antes de compilación.
const bar = 1000000; // Unit of pressure (dynes/cm2)
const double atm = 1.01325 * bar; // Standard atmosphere
var foo = const [];
final bar = const [];
const baz = []; // Equivalent to `const []`
final
A final variable can be set only once Una variable puede solo ser una vez asignada y nunca mas podrá cambiar Esto sucede en ejecución.
final name = 'Bob'; // Without a type annotation
final String nickname = 'Bobby';
name = 'Alice'; // Error: a final variable can only be set once.
Mas información en https://dart.dev/language/variables#final-and-const