¿Se puede en Rust extender una estructura existente conservando todos sus campos?
¡Hola! Acabo de empezar a aprender Rust después de C++ y Java, y tengo un problema.
En C++ podía hacer esto:
```cpp
struct Base {
int x;
int y;
};
struct Derived : Base {
int z;
};
```
Y todos los campos de Base pasaban automáticamente a Derived. En Java ocurre lo mismo con la herencia de clases.
En Rust intenté hacer algo similar:
```rust
struct Base {
x: i32,
y: i32,
}
struct Derived {
// quiero que aquí estén x e y de Base
z: i32,
}
```
Pero el compilador se queja de que no declaré los campos x e y. Entiendo que en Rust no hay herencia en el sentido clásico, pero necesito reutilizar los campos de una estructura en otra.
Me parece que copiar y pegar todos los campos es una práctica horrible. ¡Imagina que Base tiene 20 campos y quiero hacer 5 "herederos" diferentes — eso serían cientos de líneas de código repetitivo!
He oído hablar de los traits, pero parecen ser solo para métodos, no para datos. ¿Hay alguna forma de hacer composición o delegación que...
No answers yet.
Inicia sesión para dejar una respuesta
Blogs