Avatar ·

Rust में कचरा संग्रहक के जीवनकाल प्रबंधन: दीर्घजीवी वस्तुओं के लिए कचरा संग्रह कैसे लागू करें

नमस्ते साथियों! मैं Rust में नया हूँ और मेमोरी प्रबंधन को समझने की कोशिश कर रहा हूँ। मैं Java से आया हूँ, जहाँ garbage collector सभी मेमोरी समस्याओं का समाधान करता है, और अब मुझे ownership और lifetime प्रणाली की आदत डालना मुश्किल हो रहा है। मुझे एक डेटा संरचना लागू करनी है जहाँ वस्तुएँ लंबे समय तक जीवित रह सकती हैं और एक-दूसरे को संदर्भित कर सकती हैं। उदाहरण के लिए, चक्रीय संदर्भों वाला एक ग्राफ। Java में मैं बस `HashMap>` बनाकर भूल जाता। Rust में, कंपाइलर borrowing और lifetime पर त्रुटियाँ देता है। मैं कुछ इस तरह करने की कोशिश कर रहा हूँ: ```rust struct Node { id: u32, children: Vec<&Node>, } fn main() { let mut nodes = Vec::new(); let node1 = Node { id: 1, children: vec![] }; let node2 = Node { id: 2, children: vec![] }; node1.children.push(&node2); node2.children.push(&node1); } ``` कंपाइलर lifetime और borrowing के बारे में त्रुटियाँ देता है। मैं समझता हूँ कि यह ownership नियमों के कारण है, लेकिन ऐसे मामलों के लिए मैं garbage collection कैसे लागू करूँ? क्या मुझे `Rc` और `Re