Avatar ·

Vektor von Objekten, die ein gemeinsames Trait in Rust implementieren: Wie erstellen und verwenden?

Hallo! Ich bin neu in Rust und versuche, Polymorphismus zu verstehen. Ich habe ein Trait `Shape` mit einer Methode `area()` und mehrere Structs (`Circle`, `Rectangle`), die es implementieren. Ich möchte einen Vektor erstellen, der Objekte verschiedener Typen speichern kann, die dieses Trait implementieren. In C++ oder Java würde ich so etwas wie `vector shapes;` oder `List shapes = new ArrayList<>();` schreiben. Aber in Rust kann ich nicht einfach `Vec` schreiben – der Compiler sagt, dass die Größe des Traits zur Compile-Zeit nicht bekannt ist. Hier ist mein Code, der nicht funktioniert: ```rust trait Shape { fn area(&self) -> f64; } struct Circle { radius: f64, } impl Shape for Circle { fn area(&self) -> f64 { std::f64::consts::PI * self.radius * self.radius } } struct Rectangle { width: f64,