Introducción
Nota Entraremos a ver y aprender sobre las variables en Dart, ejemplos de cómo se crean y se inicializan.
Las variables en los lenguajes de programación ocupan un espacio en memoria física o virtual y almacenan allí información de diferentes tipos.
Tener en cuenta también que Dart usa estilos camelCase para la declaración de variables, específicamente lowerCamelCase. Nos indica que la primer letra es en minúscula y la primer letra de cada palabra siguiente es siempre en mayúscula, por ejemplo: defaultValue.
Tipos de Variables
Variables locales
Son las que se crean dentro de una función y solo se pueden usar allí.
void add() {
int n1 = 4;
int n2 = 3;
String res = 'Resultado: ${n1 + n2}';
print(res);
}
Variables de instancia
Son las que se crean dentro de una clase y se pueden usar en cualquier función dentro de dicha clase.
class Number {
int n1 = 4;
int n2 = 3;
void add() {
String res = 'Resultado: ${n1 + n2}';
print(res);
}
}
Creación de variables en Dart
Variables declaradas con var
Las variables que se declaran con este tipo var infieren el valor con el cual se declaran, es decir, si se la variable se inicializa con una cadena, infiere que es de tipo String y así con los demás tipos. Hay un par de excepciones con los tipos Object o dynamic que veremos más adelante.
Cuando no inicializamos una variable en Dart por defecto el valor es null.
var name;
print(name); // esta impresión nos dará null

Aquí tenemos otros ejemplos de tipo var con diferentes tipos de inicialización.
var country = 'Colombia'; // Dart infiere que country es de tipo String
var age = 33; // Dart infiere que age es de tipo int
var lists = <int>[1,2,3,4,5]; // Dart infiere que lists es de tipo List<int>
Variables declaradas con Object o Dynamic
Estas variables son útiles cuando el tipo de dato puede variar, tener en cuenta que igual no es lo recomendado, pero es posible usarlas.
Object country = 'Colombia';
dynamic country = 'Colombia';
Variables con seguridad de nulos (Null Safety)
En Dart se maneja la seguridad de nulos para evitar obtener datos o información de una variable nula, lo bueno de esto es que Dart lo detecta en tiempo de compilación, así detectamos rápidamente posibles nulos. Aunque también Dart nos brinda la opción de colocar a una variable si queremos que tenga valores nulos.
String? country; // con el caracter ? declaramos que la variable country
// puede contener valores nulos.
String country; // así le decimos a Dart que country no puede ser null.
Variables tipo late
Cuando declaramos una variable con la palabra reservada late al inicio, le indicamos a Dart que esta variable se le va a asignar un valor más adelante y antes de usarse. Si no llegamos a inicializar la variable antes de usarse puede ocurrir un error en tiempo de ejecución. Por eso hay que estar seguros que se va a asignar un valor cuando usamos late.
late String country;
void main() {
country = 'Colombia!';
print(country);
}
Variables tipo final y const
Este tipo de variables sirve para cuando no queremos que el valor de la variable cambie, es decir, que mantenga estático.
Una variable final solo se le puede asignar valor una vez, una variable const es una constante en tiempo de compilación.
Las variables de instancia pueden ser final pero no const.
final name = 'Jack';
final String nickname = 'jacksparrow';
final List<int> numbers = [1,2,3,4,5];
final letters = <int>['a','e', 'i', 'o','u'];
const country = 'Colombia';
const String country = 'Colombia';
var list = const [];
const lists = [];
Conclusión
Pudimos ver un poco cómo son las variables en Dart y su uso, es muy similar a otros lenguajes entonces la curva de aprendizaje no es muy alta al menos hasta este punto.
¡Seguiremos aprendiendo Dart y Flutter! ¡Gracias por leer! ☕
