Kodokon kodokon.com

Fundamentos de Dart: variables, funciones y null safety

Aprende a almacenar valores en variables tipadas, escribir funciones y comprender la protección contra null.

10 min · 3 preguntas

Abrir esta lección en Kodokon

Antes de construir pantallas, aprendamos los fundamentos de Dart, el lenguaje de Flutter. Una variable es una caja etiquetada en la memoria de la computadora, en la que almacenas un valor para reutilizarlo más tarde. En Dart, cada variable tiene un tipo: la naturaleza de lo que puede contener. Los cuatro tipos más comunes son int (un número entero, como 28), double (un número decimal, como 1.65), String (una cadena de caracteres, es decir, texto entre comillas) y bool (un booleano: true o false). La palabra clave var deja que Dart deduzca el tipo por sí solo a partir del valor que le proporcionas.

DART
void main() {
  var name = "Camille";
  int age = 28;
  double height = 1.65;
  bool isStudent = true;
  print(name);
  print(age);
  print(height);
  print(isStudent);
}
Declarar cuatro variables e imprimirlas

print muestra un valor en la consola, el área de texto donde el programa escribe sus mensajes: muy práctico para comprobar lo que ocurre. Para insertar una variable en medio de un texto, Dart ofrece la interpolación: coloca el símbolo $ antes del nombre de la variable, directamente dentro de la cadena. Otra palabra clave útil, final, declara una variable que nunca podrá volver a cambiar después de recibir su primer valor: úsala en cuanto un valor no esté pensado para evolucionar.

DART
void main() {
  final city = "Lyon";
  var temperature = 21;
  print("In $city, it is $temperature degrees.");
}
La interpolación inserta variables en el texto

Una función es un pequeño bloque de código reutilizable que tiene un nombre, puede recibir parámetros (valores de entrada, entre paréntesis) y puede devolver un resultado con la palabra clave return. La declaras escribiendo primero el tipo del resultado, luego su nombre y después sus parámetros. El tipo void significa "no devuelve nada": es el caso de main, el punto de entrada del programa.

DART
int add(int a, int b) {
  return a + b;
}

String greet(String name) {
  return "Hello, $name!";
}

void main() {
  print(add(2, 3));
  print(greet("Nadia"));
}
Dos funciones: una devuelve un número, la otra texto

Un último concepto clave: null safety. null es un valor especial que significa "nada, ningún valor". Los null olvidados han sido históricamente una de las principales causas de fallos en las apps. Dart te protege: por defecto, una variable no puede contener null. Para permitirlo explícitamente, añade un signo de interrogación al tipo: String? se lee como "una cadena de caracteres, o nada". El operador ?? proporciona entonces un valor de reserva, usado solo si la variable es null.

DART
void main() {
  String? nickname;
  print(nickname ?? "No nickname yet");
  nickname = "Momo";
  print(nickname);
}
El ? permite null, el ?? proporciona un valor de reserva

Prueba de conocimientos

Comprueba que has retenido los puntos clave de esta lección.

  1. ¿Qué tipo de Dart es adecuado para almacenar verdadero o falso?
    • int
    • String
    • bool
    • double
  2. ¿Qué significa la declaración String? nickname?
    • La variable nickname puede contener texto o null
    • La variable nickname es obligatoria y debe rellenarse
    • El compilador debe adivinar el tipo de nickname
  3. Con int add(int a, int b) { return a + b; }, ¿qué muestra print(add(2, 3))?
    • 2 + 3
    • 5
    • Un error de compilación