Rust प्रकारों में `dyn` कीवर्ड का क्या अर्थ है?
नमस्ते! मैंने Rust सीखना शुरू किया है और एक अजीब चीज़ देखी। कुछ उदाहरणों में मैं `Box` देखता हूँ, जबकि अन्य में सिर्फ `Box` या `&dyn Trait`। मैं समझने की कोशिश कर रहा हूँ कि `dyn` कीवर्ड वास्तव में क्या करता है।
उदाहरण के लिए, मेरे पास ऐसा कोड है:
```rust
trait Animal {
fn speak(&self);
}
struct Dog;
impl Animal for Dog {
fn speak(&self) {
println!("भौं!");
}
}
fn main() {
let pet: Box = Box::new(Dog);
pet.speak();
}
```
अगर मैं `dyn` हटा दूँ और सिर्फ `Box` लिखूँ, तो कंपाइलर एक एरर देता है: "the trait `Animal` cannot be made into an object"। लेकिन मैं समझ नहीं पा रहा हूँ कि ऐसा क्यों होता है, और `dyn` का वास्तव में क्या मतलब है। क्या यह कोई विशेष प्रकार है? या कोई मॉडिफायर? इसका उपयोग कब करना चाहिए और कब नहीं?
कृपया समझाएँ।