Rust कचरा संग्रहक (GC) की जगह क्या लेता है? Rust में GC के विकल्प
नमस्ते, साथियों! मैं Java और Python में कई वर्षों के काम के बाद Rust पर स्विच कर रहा हूँ, और मुझे एक मौलिक प्रश्न परेशान कर रहा है। Java में मैं आदी था कि कचरा संग्रहक (GC) स्वचालित रूप से मेमोरी मुक्त करता है जब ऑब्जेक्ट अप्राप्य हो जाते हैं। Python में भी ऐसा ही है - संदर्भ गणना और चक्रीय संदर्भों के लिए GC। लेकिन Rust मौलिक रूप से अलग है: यहाँ कोई कचरा संग्रहक नहीं है, और फिर भी भाषा को सुरक्षित माना जाता है।
मैंने एक सरल उदाहरण लिखा है जो Java या Python में बिना किसी समस्या के काम करता, लेकिन Rust में प्रश्न उठाता है:
```rust
struct User {
name: String,
posts: Vec,
}
fn main() {
let user = User {
name: "Alice".to_string(),
posts: vec!["Hello".to_string()],
};
// Rust कैसे जानता है कि user के लिए मेमोरी कब मुक्त करनी है?
// क्या होगा अगर मैं user को एक function में पास करूँ?
process(user);
// और यहाँ - move के बाद user का उपयोग करने का प्रयास!
// println!("{}", user.name); // संकलन त्रुटि!
}
fn process(u: User) {
println!("Processing: {}", u.name)
}
```