DMarlon Studio

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.

Dart · var, final, const y tipos en DMarlon Studio: el código del ejemplo y su salida en la terminal

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;.
  • var deduce el tipo, que ya no cambia.
  • final se asigna una sola vez; const es fijo desde la compilación.
  • $nombre mete una variable en el texto.
  • runtimeType dice 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.