Was bedeutet das Schlüsselwort `dyn` in Rust-Typen?
Hallo! Ich habe angefangen, Rust zu lernen, und bin auf eine seltsame Sache gestoßen. In einigen Beispielen sehe ich `Box`, in anderen nur `Box` oder `&dyn Trait`. Ich versuche zu verstehen, was genau das Schlüsselwort `dyn` macht.
Zum Beispiel habe ich diesen Code:
```rust
trait Animal {
fn speak(&self);
}
struct Dog;
impl Animal for Dog {
fn speak(&self) {
println!("Wuff!");
}
}
fn main() {
let pet: Box = Box::new(Dog);
pet.speak();
}
```
Wenn ich `dyn` entferne und einfach `Box` schreibe, gibt der Compiler einen Fehler aus: "the trait `Animal` cannot be made into an object". Aber ich verstehe nicht, warum das passiert und was `dyn` überhaupt bedeutet. Ist es ein spezieller Typ? Oder ein Modifikator? Wann sollte man es verwenden und wann nicht?
Bitte erklären Sie es mir wie einem Anfänger. Vielen Dank im Voraus!
<<>>
Was ist
Was ist dyn und wofür wird es benötigt?
Das Schlüsselwort dyn in Rust ist ein syntaktischer Marker, der auf einen