Lección 2 · 2 de 20
var, final, const y tipos · Dart
Declare variables en Dart con su tipo (String, int, double, bool), con var, final y const, y vea el tipo de cada valor con runtimeType.

Una variable guarda un valor con un nombre. En Dart se escribe primero el tipo y después el nombre: String city = 'Valencia';. Los tipos básicos son String (texto), int (enteros), double (números con decimales) y bool (true o false).
Dentro de una cadena, `$nombre` pone el valor de la variable: '$city has $population people' escribe Valencia has 800000 people. Es la forma habitual de componer texto en Dart; se verá a fondo en la lección 4.
Con `var` no hace falta escribir el tipo: Dart lo deduce del primer valor. var visitors = 1200; crea un int que después puede cambiar (visitors = visitors + 300), pero siempre será un int: asignarle 'many' es un error que Dart detecta antes de ejecutar.
`final` da un valor una sola vez: mayor ya no puede cambiar. `const` es aún más estricto: el valor tiene que conocerse antes de ejecutar el programa, como el 50 de speedLimit. Use final o const siempre que un valor no vaya a cambiar; el código es más claro y más seguro.
Las líneas que empiezan por // con una asignación muestran errores a propósito: si quita las barras, Dart no compila. Al final, `runtimeType` dice el tipo de cada valor: String, int, double y bool.
Código · main.dart
void main() { // The type goes before the name: String, int, double, bool. String city = 'Valencia'; int population = 800000; double temperature = 22.5; bool byTheSea = true; // $name puts a variable inside the text. print('$city has $population people'); print('Today: $temperature degrees. By the sea? $byTheSea'); // var lets Dart work out the type from the first value. var visitors = 1200; visitors = visitors + 300; print('Visitors: $visitors'); // visitors = 'many'; // Error: visitors is an int. // final: given a value once, it can never change. final mayor = 'Elena Ruiz'; // const: a fixed value, known before the program runs. const speedLimit = 50; // speedLimit = 60; // Error: a const cannot change. print('Mayor: $mayor. Speed limit: $speedLimit km/h'); // runtimeType tells the type of a value. print(city.runtimeType); print(visitors.runtimeType); print(temperature.runtimeType); print(byTheSea.runtimeType);}Salida · dart run main.dart
Valencia has 800000 people Today: 22.5 degrees. By the sea? true Visitors: 1500 Mayor: Elena Ruiz. Speed limit: 50 km/h String int double bool
Para recordar
- Tipo y nombre:
int age = 29;. vardeduce el tipo, que ya no cambia.finalse asigna una sola vez;constes fijo desde la compilación.$nombremete una variable en el texto.runtimeTypedice el tipo de un valor.
Ejercicio
Añada una variable final con el nombre de un río y una const con su longitud en kilómetros, y escriba una frase con las dos y el tipo de cada una.