0Pricing
Dart Academy · Lección

Clases y métodos genéricos

Parametrizar sus propios tipos.

Clases y métodos genéricos es una lección gratuita de Dart Academy en CoddyKit. Esta es la lección 2 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.

Sus propios genéricos

Los tipos integrados como List son genéricos, y usted también puede crear los suyos. Un parámetro de tipo permite que su clase se adapte al tipo que elija quien la utilice. 🧩

Asignar un nombre al parámetro de tipo

Añada un parámetro de tipo entre corchetes angulares después del nombre de la clase. La letra T es un marcador habitual que representa un tipo real.

class Box<T> {
  T value;
  Box(this.value);
}

Usar T internamente

Dentro de la clase, T se comporta como cualquier nombre de tipo. Puede usarlo para campos, parámetros y valores de retorno en todo el cuerpo.

class Box<T> {
  T value;
  Box(this.value);
  T get() => value;
}

Completar el tipo

Al crear el objeto, elija el tipo real. Aquí T se convierte en int, por lo que este contenedor solo puede contener números enteros.

var b = Box<int>(42);
int n = b.get();

Deje que Dart lo infiera

A menudo puede omitir el tipo explícito porque Dart lo obtiene del argumento. La inferencia ve un String y establece T por usted.

var b = Box('hi');

Varios parámetros de tipo

Una clase puede aceptar más de un parámetro de tipo, separados por comas. Un par que contiene dos tipos distintos es un ejemplo clásico.

class Pair<A, B> {
  A first;
  B second;
  Pair(this.first, this.second);
}

Métodos genéricos

También puede hacer genérico un solo método, incluso dentro de una clase no genérica. Coloque el parámetro de tipo justo antes de la lista de parámetros.

T firstOf<T>(List<T> items) => items[0];

Los métodos también infieren tipos

Un método genérico normalmente infiere su tipo a partir de los argumentos que pasa. Llámelo normalmente y Dart se encargará del resto.

var n = firstOf([1, 2, 3]);
var s = firstOf(['a', 'b']);

Vuelve la seguridad de tipos

Como el método realiza un seguimiento de T, el resultado conserva el tipo correcto. firstOf en una lista de String devuelve un String, sin necesidad de conversiones.

String x = firstOf(['a', 'b']);

Reutilizable, no repetitivo

Una sola definición genérica sustituye a muchas versiones copiadas y pegadas. Escribe la lógica una vez y esta sirve por igual para int, String y cualquier tipo personalizado.

Elija nombres claros

Las letras individuales como T, E o K son convencionales, pero un nombre descriptivo puede ser útil. En código complejo, la claridad importa más que la brevedad.

Comprobación rápida

¿Dónde se coloca un parámetro de tipo en una clase?

Resumen

Ha aprendido a añadir un parámetro de tipo como T a sus propias clases y métodos. Dart lo completa, a menudo mediante inferencia, para mantener el código reutilizable y seguro. ✅

Preguntas frecuentes

¿La lección «Clases y métodos genéricos» es gratis?

Sí — el texto completo de «Clases y métodos genéricos» 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 «Clases y métodos genéricos»?

Parametrizar sus propios tipos. 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 2 de 4.

¿Cuánto tiempo toma la lección «Clases y métodos genéricos»?

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. Por qué los genéricos superan a dynamic
  2. Clases y métodos genéricos
  3. Parámetros de tipo acotados con extends
  4. Colecciones genéricas en la práctica
← Volver a Dart Academy