0Pricing
Dart Academy · Lección

Enums mejorados con campos y métodos

Asociar datos y comportamiento a cada valor.

Enums mejorados con campos y métodos 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.

Los enums pueden contener datos

Las versiones modernas de Dart permiten que cada miembro de un enum contenga sus propios datos. Son los enhanced enums, que convierten etiquetas simples en valores completos.

Añadir un campo

Declare un campo final en el enum y, después, pase un valor para cada miembro. Ahora cada miembro contiene esos datos adicionales.

enum Planet {
  earth(9.8), mars(3.7);
  final double gravity;
}

Se requiere un constructor const

Los enhanced enums necesitan un constructor const para establecer sus campos. Se ejecuta una vez por cada miembro al crear los valores.

const Planet(this.gravity);

Los miembros pasan argumentos al constructor

Los valores entre paréntesis son constructor arguments. earth(9.8) significa que earth se crea con la gravedad establecida en 9.8.

earth(9.8), mars(3.7);

Leer el campo de un miembro

Acceda a los datos a través del miembro, igual que con cualquier propiedad. Cada miembro devuelve su propio valor almacenado.

print(Planet.earth.gravity); // 9.8

Varios campos

Un enhanced enum puede contener varios campos a la vez. Enumérelos en el constructor y proporcione cada valor para cada miembro.

enum Coin { penny(1, "1c"), dime(10, "10c"); }

Añadir un método

Los enhanced enums también pueden definir methods. El método puede usar los campos del miembro y proporcionar un comportamiento real a cada valor.

double weightOf(double mass) => mass * gravity;

Llamar a un método de enum

Llame al método en cualquier miembro como lo haría con un objeto normal. Se ejecuta usando los valores de campo propios de ese miembro.

print(Planet.mars.weightOf(70)); // 259.0

Añadir un getter

También puede usar un getter calculado, que devuelve un valor derivado de los campos sin almacenar nada nuevo.

bool get isStrong => gravity > 5;

Siguen siendo enums

A pesar de sus capacidades adicionales, los enhanced enums conservan values, index y name. No pierde nada al añadir campos y métodos.

print(Planet.values.length); // 2

Cuándo mejorarlo

Use un enhanced enum cuando cada opción tenga datos relacionados, como un color con un código hexadecimal. Así mantiene juntos los datos y la opción.

Comprobación rápida

¿Qué debe incluir siempre un enhanced enum con campos?

Resumen: enhanced enums

Ha aprendido que los enhanced enums contienen fields y métodos mediante un constructor const, de modo que cada miembro lleva sus propios datos y comportamiento. 🚀

Preguntas frecuentes

¿La lección «Enums mejorados con campos y métodos» es gratis?

Sí — el texto completo de «Enums mejorados con campos y métodos» 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 «Enums mejorados con campos y métodos»?

Asociar datos y comportamiento a cada valor. 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 «Enums mejorados con campos y métodos»?

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. Declarar y usar enums simples
  2. Valores, index y name de un enum
  3. Enums mejorados con campos y métodos
  4. Usar switch exhaustivamente con enums
← Volver a Dart Academy