Léxico TI › Programación › Objetos trait

Objetos trait

Programación Svenska → Actualizado: 2026-09-03

La forma que tiene Rust de hacer despacho dinámico: dyn Trait oculta el tipo concreto y busca el método en una vtable en tiempo de ejecución.

El código genérico en Rust se monomorfiza normalmente: el compilador genera una copia separada por cada tipo concreto, lo que da llamadas directas pero binarios que crecen. A veces eso no es posible: un vector pensado para contener varios tipos distintos de figura no puede tener un único tipo concreto de elemento. Ahí entra Box<dyn Draw>, donde cada valor se representa con un par de punteros: uno a los datos, otro a la tabla con las implementaciones de métodos de ese tipo. La llamada se vuelve indirecta y no puede insertarse en línea, pero el código existe en una sola copia. No todo trait vale: las reglas de seguridad de objeto excluyen, entre otras cosas, los métodos genéricos, ya que una vtable no puede rellenarse con infinitas variantes.

← Volver al léxico