Avatar ·

Rust में garbage collector के जीवनकाल प्रबंधन: मेमोरी को सही तरीके से कैसे मुक्त करें?

सभी को नमस्कार! मैं Rust में नया हूँ, Java से आया हूँ जहाँ सब कुछ सरल है — GC खुद मेमोरी साफ करता है। Rust में मैं ownership और borrowing की अवधारणा से परिचित हुआ, और मुझे एक समस्या का सामना करना पड़ा। मैं एक छोटा गेम लिख रहा हूँ जिसमें ऐसी वस्तुएँ हैं जिन्हें अनिश्चित समय तक जीवित रहना चाहिए। उदाहरण के लिए, गोलियाँ, दुश्मन, प्रभाव कण। Java में मैं बस `new Bullet()` बनाता, और GC उन्हें हटा देता जब वे scope से बाहर हो जाते। Rust में, compiler lifetime पर त्रुटि देता है। यहाँ सरलीकृत कोड है जो compile नहीं होता: ```rust struct Bullet { x: f32, y: f32, alive: bool, } struct Game { bullets: Vec, } impl Game { fn spawn_bullet(&mut self, x: f32, y: f32) { // त्रुटि: self.bullets पर reference वापस नहीं कर सकता let bullet = Bullet { x, y, alive: true }; self.bullets.push(bullet); } fn update(&mut self) { // मृत गोलियों को हटाने की आवश्यकता है self.bullets.retain(|b| b.alive); } } ``` समस्या यह है कि जब मैं