Tipos de Variables en Dart

Tipos de Variables en Dart
Este artículo contempla los videos del 9 al 13 de la sección del curso guía
Flutter - Móvil: De cero a experto - Edición 2023 de Fernando Herrera

¡Saludos a todos los entusiastas de la programación! En este artículo, exploraremos los diferentes tipos de variables en el lenguaje de programación Dart. Los tipos de variables son fundamentales para el desarrollo de aplicaciones en Dart, ya que nos permiten almacenar y manipular diferentes tipos de datos de manera eficiente. Cubriremos los siguientes tipos de variables: tipado dinámico, strings, booleans, int, double, maps, listas iterables y sets. También hablaremos sobre los conceptos de final, const, var y dynamic. ¡Comencemos!

Tipado dinámico

Dart es un lenguaje de programación que admite el tipado dinámico. Esto significa que las variables pueden cambiar su tipo durante la ejecución del programa. Podemos declarar una variable con el tipo dynamic para lograr esto. Veamos un ejemplo:

dynamic miVariable = 42;
print(miVariable);  // Salida: 42

miVariable = "¡Hola, Dart!";
print(miVariable);  // Salida: ¡Hola, Dart!

En el ejemplo anterior, la variable miVariable comienza como un entero (int), pero luego se asigna una cadena (String). El tipado dinámico nos permite adaptar el tipo de una variable según sea necesario. Existen una variedad de tipados dinámicos que irás aprendiendo a medida que practiques.

Strings

En Dart, un string es una secuencia de caracteres y se representa entre comillas simples o dobles. Los strings se utilizan para representar texto. Aquí tienes un ejemplo:

String nombre = "Ana";
print("Hola, $nombre");  // Salida: Hola, Ana

En este ejemplo, hemos declarado una variable llamada nombre y le hemos asignado el valor "Ana". Luego, utilizamos una interpolación de cadenas ($nombre) para imprimir el saludo personalizado. Transversalmente conocidos como textos.

Booleans

Un booleano en Dart es un tipo de dato que solo puede tener dos valores: true o false. Los booleanos se utilizan para representar estados lógicos. Aquí tienes un ejemplo:

bool esMayorEdad = true;
print(esMayorEdad);  // Salida: true

En este ejemplo, hemos declarado una variable llamada esMayorEdad y le hemos asignado el valor true. Indica que la persona es mayor de edad.

Números: int y double

Dart proporciona dos tipos de datos numéricos principales: int y double. Los int se utilizan para representar números enteros, mientras que los double se utilizan para representar números decimales. Veamos un ejemplo:

int edad = 25; 
double altura = 1.75; 
print(edad);    // Salida: 25 
print(altura);  // Salida: 1.75

En este ejemplo, hemos declarado una variable edad de tipo int y una variable altura de tipo double. Podemos realizar operaciones matemáticas y manipulaciones con estos tipos de datos.

Maps (mapas)

En Dart, los maps son colecciones de pares clave-valor, donde cada clave es única. Dart proporciona la clase Map para representar mapas. Aquí tienes un ejemplo:

Map<String, int> edades = { 
  "Juan": 25, 
  "María": 30, 
  "Carlos": 35
};

print(edades["Juan"]);    // Salida: 25 
print(edades["María"]);   // Salida: 30 
print(edades["Carlos"]);  // Salida: 35

En este ejemplo, hemos creado un mapa llamado edades donde las claves son nombres (String) y los valores son edades (int). Podemos acceder a los valores del mapa utilizando las claves correspondientes.

Listas iterables

En Dart, las listas son colecciones ordenadas de elementos. Dart proporciona la clase List para representar listas. Las listas pueden contener elementos de cualquier tipo. Veamos un ejemplo:

List<String> frutas = ["manzana", "plátano", "naranja"]; 
print(frutas[0]);     // Salida: manzana 
print(frutas.length); // Salida: 3 
frutas.add("uva"); 
print(frutas);        // Salida: [manzana, plátano, naranja, uva]

En este ejemplo, hemos creado una lista llamada frutas que contiene strings. Podemos acceder a los elementos de la lista utilizando un índice y también podemos agregar nuevos elementos utilizando el método add.

Sets

Un conjunto en Dart es una colección de elementos únicos sin un orden definido. Dart proporciona la clase Set para representar conjuntos. Veamos un ejemplo:

Set<int> numeros = {1, 2, 3, 4, 5}; 
print(numeros.contains(3));   // Salida: true 
numeros.add(6); 
print(numeros);              // Salida: {1, 2, 3, 4, 5, 6}

En este ejemplo, hemos creado un conjunto llamado numeros que contiene números enteros. Los conjuntos garantizan que no haya elementos duplicados, por lo que solo se guarda un único valor de cada elemento.

Final, const, var y dynamic

En Dart, también existen palabras clave especiales para declarar variables: final, const, var y dynamic.

  • final: Una variable declarada como final puede ser asignada solo una vez y su valor no puede cambiar después de la asignación inicial.
  • const: Una variable declarada como const es similar a final, pero se evalúa en tiempo de compilación y su valor debe ser constante en tiempo de ejecución.
  • var: La palabra clave var se utiliza para declarar una variable cuyo tipo se infiere automáticamente según el valor asignado.
  • dynamic: La palabra clave dynamic se utiliza para declarar una variable con tipado dinámico, lo que significa que su tipo puede cambiar durante la ejecución.

Practice Time!

Es hora de poner en práctica tus conocimientos. Vamos a construir un pequeño código, para eso necesitamos que visites https://dartpad.dev

Copia y pega el código base en DartPad. Y sigue las instrucciones.

void main() {
  // Declara las siguientes variables
  // con los tipos de datos correspondientes
  
  // 1. Nombre del jugador
  
  // 2. Número de medallas obtenidas
  
  // 3. Indica si el jugador ha capturado un Pokémon legendario
  
  // 4. Lista de nombres de los Pokémon capturados por el jugador
  
  // 5. Puntos de experiencia del jugador
  
  // 6. Imprime las variables en la consola
}

Espero que este artículo haya aclarado los diferentes tipos de variables en Dart y cómo se utilizan. Recuerda practicar y experimentar con cada tipo para comprender mejor su funcionamiento. ¡Feliz programación!