Lección 16 / 20

Traits (comportamiento compartido)

En esta lección definirás un comportamiento común y harás que varios tipos lo implementen.

Un trait declara qué métodos debe tener un tipo, parecido a una interfaz. El bloque impl Trait for Tipo es el que aporta la implementación concreta. Es el mecanismo con el que Rust hace polimorfismo.

El código de ejemplo declara que algo «sabe hablar» y hace que un perro cumpla ese contrato devolviendo su ladrido.

La gran diferencia frente a la herencia de Java o C++ es que Rust no tiene herencia de clases. No se construyen árboles de clases padre e hija: se declara qué sabe hacer cada tipo. Eso evita las jerarquías profundas y frágiles en las que un cambio arriba rompe cosas cinco niveles más abajo.

Además puedes implementar tus propios traits para tipos que no escribiste tú, incluidos los de la biblioteca estándar. Los traits que ya usas sin darte cuenta son muchos: Display es el que permite imprimir con {}, Clone el que da el método clone(), y PartialOrd el que hace comparables dos valores, como verás en la lección siguiente.

📖 Código de referencia
✍️ Tu código
Escribe tu código y pulsa «Ejecutar»

🧪 Este sitio no puede compilar ni ejecutar Rust directamente, así que comprueba al instante si lo que escribiste coincide con el código de referencia (la corrección ocurre por completo en tu navegador; no se envía nada a ningún servidor).

Espacio publicitario (banner)
Espacio publicitario (en el artículo)