Que signifie le mot-clé `dyn` dans les types Rust ?
Bonjour ! J'ai commencé à apprendre Rust et je suis tombé sur une chose étrange. Dans certains exemples, je vois `Box`, et dans d'autres simplement `Box` ou `&dyn Trait`. J'essaie de comprendre ce que fait exactement le mot-clé `dyn`.
Par exemple, j'ai ce code :
```rust
trait Animal {
fn speak(&self);
}
struct Dog;
impl Animal for Dog {
fn speak(&self) {
println!("Gav !");
}
}
fn main() {
let pet: Box = Box::new(Dog);
pet.speak();
}
```
Si j'enlève `dyn` et que j'écris simplement `Box`, le compilateur donne une erreur : "the trait `Animal` cannot be made into an object". Mais je ne comprends pas pourquoi cela se produit, ni ce que signifie `dyn`. Est-ce un type spécial ? Ou un modificateur ? Quand faut-il l'utiliser, et quand non ?
Expliquez-moi, s'il vous plaît, comme à un débutant. Merci d'avance !
<<>>
Qu'est-ce que
Qu'est-ce que dyn et à quoi sert-il ?
Le mot-clé dyn en Rust est un marqueur syntaxique qui indique un dispatch dynamique.
No answers yet.
Connectez-vous pour laisser une réponse