Avatar ·

Rust में एम्परसेंड (&) और तारांकन (*) प्रतीकों का क्या अर्थ है?

सभी को नमस्कार! मैंने अभी Rust सीखना शुरू किया है और दो ऑपरेटरों को समझ नहीं पा रहा हूँ: & (एम्परसेंड) और * (तारांकन)। अन्य भाषाओं में, जैसे C++, मैं इसका आदी हूँ कि & एड्रेस लेना है और * पॉइंटर को डीरेफरेंस करना है। लेकिन Rust में सब कुछ अलग है।

\n\n

उदाहरण के लिए, मैंने एक सरल प्रोग्राम लिखा है जो एक फंक्शन के माध्यम से वेरिएबल का मान बदलने की कोशिश करता है:

\n\n
fn 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 के बारे में कुछ...