Rust में स्ट्रक्चर में क्लोज़र (closure) कैसे स्टोर करें?
नमस्ते! मैंने Rust सीखना शुरू किया है और स्ट्रक्चर में क्लोज़र स्टोर करने की कोशिश करते समय एक समस्या का सामना किया। मेरे पास एक सरल कैलकुलेटर है जिसे पास किए गए क्लोज़र के आधार पर अलग-अलग ऑपरेशन करने चाहिए।
यहाँ मैं क्या करने की कोशिश कर रहा हूँ:
```rust
struct Calculator {
operation: fn(i32, i32) -> i32,
}
fn main() {
let add = |a, b| a + b;
let calc = Calculator { operation: add };
println!("Result: {}", (calc.operation)(5, 3));
}
```
यह कोड काम करता है, लेकिन केवल तब जब मैं एक सामान्य function या ऐसा क्लोज़र पास करता हूँ जो बाहरी वातावरण से वेरिएबल कैप्चर नहीं करता। जैसे ही मैं ऐसे क्लोज़र का उपयोग करने की कोशिश करता हूँ जो वेरिएबल कैप्चर करता है, कंपाइलर एरर देता है। उदाहरण के लिए:
```rust
let multiplier = 2;
let multiply = |a, b| a * b * multiplier;
let calc = Cal