A continuación, se muestra un ejemplo de cómo crear una variable e inicializarla de forma automática, con la ayuda de la palabra reservada var:
var nombre = 'Joe';
En el ejemplo anterior DART infiere que el tipo es una cadena de texto (lo llamaremos String)
Esta forma de declaración de variable vera que no es muy común implementarla ya que no es obligatoria dicha palabra y es preferible hacer la declaración definiendo el tipo de valor que allí se almacenara.
En el siguiente ejemplo se declarar explícitamente el tipo que se inferiría:
String nombre = 'Joe';
Índice
Valor null por defecto
En ocasiones tendremos variables no inicializadas las cuales tomaran el valor inicial de null. Incluso las variables con tipos numéricos son inicialmente null, porque recuerda todo en DART , son objetos. Observa el siguiente ejemplo donde todas las variables estarías inicialmente en null:
int edad; double precio; String nombre; List lista;
Declaración de Variables: final y const.
Si no tienes la intención de cambiar el valor de la variable, debes usar final o const, ya sea en lugar de var o además de un tipo.
- Una variable final solo se puede establecer una vez
- Una variable const es una constante en tiempo de compilación.
(Las variables de constante son implícitamente finales). Una variable final de nivel superior o de clase se inicializa la primera vez que se utiliza.
A continuación, se muestra un ejemplo de cómo crear y configurar una variable final:
final nombre = 'Joe'; // sin definir el tipo final String usuario = 'bachi';
No puede cambiar el valor de una variable final:
nombre = 'Pedro'; // esta acción daría error, ya que no podemos modificar las variables final
Utilice const para las variables que desee que sean constantes en tiempo de compilación. Si la variable const está en el nivel de clase, márquela estática const.
Cuando declare la variable, establezca el valor en una constante en tiempo de compilación como un número o literal de cadena, una variable constante o el resultado de una operación aritmética en números constantes:
const cuota = 25; const double total_pago = 1.25 * cuota;
No puede cambiar el valor de una variable constante:
cuota = 80; // esta acción daría error, ya que no podemos modificar las variables const
Tipos de datos en Dart
Numbers (numéricos)
int
Valores enteros no mayores de 64 bits, dependiendo de la plataforma. En la máquina virtual de Dart, los valores pueden ser de -263 to 263 – 1. Dart que se compila en JavaScript utiliza números de JavaScript, lo que permite valores de -263 to 263 – 1.
double
Números de coma flotante de 64 bits (doble precisión), según lo especificado por el estándar IEEE 754.
En resumen:
- Int: muchos números sin decimales
- Double: muchos números CON decimales
Por supuestos que existen mas tipo de datos numéricos y podríamos acceder a ellos mediante la biblioteca dart:math (sin embargo de momento nos quedaremos con estos).
// INT var x = 1; // int - no tiene decimales var hex = 0xDEADBEEF; // int - no tiene decimales //DOUBLE var y = 1.1; // double - tiene decimales var exponencial = 1.42e5; // double - tiene decimales double z = 1; // esta declarado como double por lo cual equivale como 1.0
String (cadena de texto)
Un String en DART es una secuencia letras, números, caracteres especiales, etc. Puede utilizar comillas simples o dobles para crear asignar dicho valor:
String texto_1 = 'Cadena simple de texto.'; String texto_2 = "Entre comillas doble, todo bien!"; String texto_3 = 'Texto escapado para incrustar \' con facilidad.'; String texto_4 = "O mejor uso doble comilla cuando tenga el ' en texto.";
Si necesitas crear un String de varias líneas: utiliza una comillas triple con comillas simples o dobles:
String varias_lineas_1 = ''' Hola Joe. ¿Como te va? '''; String varias_lineas_2 = """Hola Joe. ¿Como te va?""";
Si hacemos un PRINT, en el primer ejemplo podrás observar que también se muestran los saltos de líneas y espacios. Por ello, debes ser muy cuidadoso al momento de almacenar información de esta forma. En el segundo ejemplo se arreglan esos detalles eliminando los espacios y saltos de líneas innecesarios.
Booleans (booleanos)
Para representar valores booleanos, DART tiene un tipo llamado bool. Estas variables solo pueden tener true y false, que son constantes en tiempo de compilación.
Ojo: este tipo de dato también puede ser null, si es inicializada sin valor. Veamos algunos ejemplos:
bool estado = true; // verdadero bool estado2 = false; // falso bool estado_vacio; // null
Lists (listas)
Quizás la colección más común en casi todos los lenguajes de programación es la matriz o grupo ordenado de objetos. En DART, las matrices son objetos de lista, por lo que la mayoría de la gente simplemente las llama listas.
Los literales de lista de DART se parecen a los literales de matriz de JavaScript. Aquí hay una lista simple de DART :
List lista1 = [1, 2, 3]; // lista inicializada con tres valores List lista2 = new List(); // lista vacia, se le pueden agregar elementos List lista3 = new List(3); // lista de 3 posiciones. No se pueden agregar mas elmentos
Las listas usan indexación basada en cero, donde 0 es el índice del primer elemento y list.length – 1 es el índice del último elemento. Esto quiere decir que si declaramos un lista de 3 posiciones las mismas serian: posición 0, posición 1 y posición 2. No existe la posición 3, ya que al iniciar del 0, esa ya cuenta como la primera posición.
Desde Dart 2.3, se introdujo la posibilidad de usar IF y FOR (más adelante veremos estos operadores a detalles) en la declaración de listas.
// Implementando IF List categorias = [ 'Hogar', 'Cocina', 'Muebles', if (promocionActiva) 'Oferta' ]; // Implementando FOR var listNumeros = [1, 2, 3]; var listStrings = [ '#0', for (var i in listOfInts) '#$i' ];
Sets (conjuntos)
Un Set en Dart es una colección desordenada de artículos únicos, es decir, al momento de ingresar un valor que ya se encuentre en la misma, Dart no la agregara ni dará ningún tipo de error. En todo lo demás son igual a las listas.
Esto resulta realmente útil para casos donde queramos evitar tener que hacer una gran cantidad de validaciones para determinar si el valor nuevo está o no en la matriz.
Set inscritos = {'joe@dart.com', 'jose@dart.com', 'juan@dart.com'}
Para crear un conjunto vacío, use {} precedido por un argumento de tipo, o asigne {} a una variable de tipo Conjunto:
Set<String> inscritos = {};
Maps (mapas) – Una de las variables preferidas en DART y FLUTTER
En general, un mapa es un objeto que asocia claves y valores. Tanto las claves como los valores pueden ser cualquier tipo de objeto. Cada clave aparece solo una vez, pero puede usar el mismo valor varias veces. Ejemplo de un mapa:
Map comidas = { // Key : Value 'favorita' : 'hamburguesas', 'agradables': 'sushi', 'tolerable' : 'postre' };
Puede crear los mismos objetos utilizando un constructor de mapas:
var comidas = Map(); comidas['favorita'] = 'hamburguesas'; comidas['agradables'] = 'sushi'; comidas['tolerable'] = 'postre';
Enum
Este tipo de dato hará tu código mucho mas fácil de leer. Le permitirán definir una cantidad fija de valores constantes. Para hacer la llamada de la variables deberá indicar el TIPO.VALOR, lo cual hace que se pueda interpretar con mayor facilidad.
import 'dart:collection'; enum EstadoUsuario{ inactivo,activo,baneado } main() { EstadoUsuario estado = EstadoUsuario.inactivo; switch (estado) { case EstadoUsuario.inactivo : print('INACTIVO'); break; case EstadoUsuario.activo : print('ACTIVO'); break; case EstadoUsuario.baneado : print('BANEADO'); break; default: } }
Queue
Una cola (Queue) es una colección que se puede manipular en ambos extremos. Se puede iterar sobre los elementos de una cola a través de forEach o con un iterador.
Por lo general, no se permite modificar la cola (agregar o eliminar entradas) mientras se realiza una operación en la cola, por ejemplo, durante una llamada a forEach. Modificar la cola mientras se está iterando probablemente romperá la iteración. Esto se aplica tanto para usar el iterador directamente como para iterar un Iterable devuelto por un método como map o where.
No su suele usar mucho ya que los desarrolladores preferimos las Listas (List)
void tipoQueue(){ // Definicio de Queue de INT Queue<int> cola = new Queue(); // Le asignamos valores a la variable cola.addAll([1,2,3,4,5,6]); // Asignamos en valor del iterator a i, para acceder a los metodos Iterator i = cola.iterator; // Recorremos el Queue con un Whilw while (i.moveNext()) { print(i.current); } }
Existe otro tipo de dato más avanzado llamado FUTURE, quieres saber como se utiliza, ingresa aquí.
Igualmente si deseas visitar la pagina de documentación de DART, ingresa acá
[…] Te gustaría conocer los tipos de datos en DART, ingresa aquí […]