0Pricing
Dart Academy · Lección

Listas de inicialización y redirección

Establecer campos final y reutilizar constructores.

Listas de inicialización y redirección es una lección gratuita de Dart Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Dart Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Dart Academy incluye 4 lecciones en total.

Establecer campos final

Un campo final debe establecerse antes de que se ejecute el cuerpo del constructor. La lista de inicialización es el lugar perfecto para darle su único valor.

class Circle {
  final double area;
  Circle(double r) : area = 3.14 * r * r;
}

Sintaxis de la lista de inicialización

Después de la lista de parámetros, añada dos puntos y asignaciones separadas por comas. Esta initializer list se ejecuta antes del cuerpo del constructor.

Point(int x, int y) : x = x, y = y;

Se ejecuta antes del cuerpo

Las asignaciones de inicialización ocurren primero y después se ejecuta el cuerpo. Por tanto, los campos que establezca en la list ya estarán listos dentro del cuerpo.

class Box {
  final int n;
  Box(int v) : n = v {
    print(n); // available
  }
}

Calcular valores derivados

Use la lista para calcular un campo a partir de los parámetros, como un total o una etiqueta, antes de que nadie pueda acceder al object.

class Rect {
  final int area;
  Rect(int w, int h) : area = w * h;
}

Varios inicializadores

Separe varias asignaciones con comas. Cada una establece un campo diferente dentro de la misma initializer list.

Point(int a, int b) : x = a, y = b;

assert en la lista de inicialización

Puede incluir un assert en la lista para controlar las entradas durante el desarrollo y detectar valores incorrectos antes de que exista el objeto.

Circle(double r) : assert(r > 0), area = 3.14 * r * r;

Redirigir constructores

Un constructor puede delegar en otro mediante this después de los dos puntos, de modo que la configuración compartida se mantenga en un único lugar.

class Point {
  int x, y;
  Point(this.x, this.y);
  Point.zero() : this(0, 0);
}

Por qué redirigir

La redirección evita repetir asignaciones de campos. El constructor con nombre simplemente llama al principal, lo que mantiene la lógica DRY.

Point.origin() : this(0, 0);

Los cuerpos redirigidos permanecen vacíos

Un constructor que redirige no tiene cuerpo. Solo reenvía la llamada al destino con this(...), que realiza todo el trabajo.

class User {
  String name;
  User(this.name);
  User.anon() : this("anon");
}

Orden de las operaciones

Recuerde el flujo: la lista de inicialización y cualquier redirección se ejecutan primero, y después el cuerpo. Establezca los campos finals en la lista y realice las tareas adicionales en el cuerpo.

Lista de inicialización frente a cuerpo

Use la lista para asignar campos, especialmente los finales; use el body para la lógica, como imprimir, validar más allá de assert o llamar a métodos.

Comprobación rápida

Comprobación rápida sobre las listas de inicialización.

Resumen: inicialización y redirección

Ahora puede usar una initializer list para establecer campos final y calcular valores, controlar las entradas con assert y redirigir un constructor a otro con this. 🔀

Preguntas frecuentes

¿La lección «Listas de inicialización y redirección» es gratis?

Sí — el texto completo de «Listas de inicialización y redirección» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Dart Academy, actualiza a CoddyKit PRO. El curso de Dart Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Listas de inicialización y redirección»?

Establecer campos final y reutilizar constructores. Practicas Dart Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Dart Academy?

No se requiere experiencia previa. Dart Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.

¿Cuánto tiempo toma la lección «Listas de inicialización y redirección»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Dart Academy?

Sí. Cada lección de Dart Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Constructores predeterminados y parametrizados
  2. Constructores con nombre para una intención clara
  3. Listas de inicialización y redirección
  4. Constructores factory y const
← Volver a Dart Academy