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
Noch keine Antworten.
Anmelden um eine Antwort zu hinterlassen