Avatar ·

Rust में Box, ref, & और * को समझना: क्या अंतर है और इनका उपयोग कैसे करें?

सभी को नमस्ते! मैंने हाल ही में Rust सीखना शुरू किया है और लगातार इन चार चीज़ों में भ्रमित हो जाता हूँ: `Box`, `ref`, `&` और `*`। मैं समझता हूँ कि ये सभी किसी न किसी तरह pointers और references से संबंधित हैं, लेकिन मैं यह नहीं समझ पा रहा हूँ कि कब क्या उपयोग करना चाहिए। उदाहरण के लिए, मैं यह प्रोग्राम लिखता हूँ: ```rust fn main() { let x = 42; let y = &x; // reference let z = Box::new(x); // Box println!("{} {}", y, z); } ``` यहाँ सब कुछ काम करता है। लेकिन जब मैं कुछ और जटिल करने की कोशिश करता हूँ, जैसे pattern matching, तो सब कुछ टूट जाता है: ```rust fn main() { let maybe_number = Some(10); match maybe_number { Some(ref x) => println!("मिल गया {}", x), None => println!("कुछ नहीं है"), } } ``` यहाँ `ref` की आवश्यकता क्यों है, न कि सिर्फ `x`? और `*`, `&` से कैसे अलग है? मैंने पढ़ा है कि `*` एक...