Rust में एम्परसेंड (&) और तारांकन (*) प्रतीकों का क्या अर्थ है?
सभी को नमस्ते! मैंने अभी Rust सीखना शुरू किया है और दो ऑपरेटरों को समझ नहीं पा रहा हूँ: & (एम्परसेंड) और * (तारांकन)। अन्य भाषाओं में, जैसे C++, मैं इसका आदी हूँ कि & का अर्थ एड्रेस लेना है, और * का अर्थ पॉइंटर को डीरेफरेंस करना है। लेकिन Rust में सब कुछ अलग है।
उदाहरण के लिए, मैंने एक सरल प्रोग्राम लिखा जो एक फंक्शन के माध्यम से वेरिएबल का मान बदलने का प्रयास करता है:
\n\nfn main() {\n let x = 42;\n let y = &x;\n println!("{}", y); // काम करता है, लेकिन यहाँ क्या हो रहा है?\n \n let mut z = 10;\n change_value(&z);\n println!("{}", z);\n}\n\nfn change_value(val: &i32) {\n *val = 100; // त्रुटि! क्यों?\n}\n\nकंपाइलर *val = 100 लाइन पर त्रुटि देता है, कुछ कहता है कि val...