यहाँ दो समारोह हस्ताक्षर मैं जंग दस्तावेज में देखा हैं:एक परिवर्तनीय नाम से पहले और ":" के बाद "mut" रखने के बीच क्या अंतर है?
fn modify_foo(mut foo: Box<i32>) { *foo += 1; *foo }
fn modify_foo(foo: &mut i32) { *foo += 1; *foo }
क्यों mut
के विभिन्न प्लेसमेंट?
ऐसा लगता है पहले समारोह भी
रूपfn modify_foo(foo: mut Box<i32>) { /* ... */ }
मैं देखता हूं। मुझे लगता है कि यह सी ++ में है जहां आप अलग-अलग चीजों को प्राप्त करने के लिए 'int const * 'बनाम' int * const' प्राप्त कर सकते हैं। –
@ शेमपस्टर आप जोड़ना चाहते हैं कि बाध्यकारी पर 'mut' आपको संरचना के अंदर उत्परिवर्तित करने की अनुमति देता है (यदि यह एक संरचना है)। –
मुझे लगता है कि यह मेरे लिए खड़ा है कि जंग क्यों सिंटैक्स 'चलो foo: mut टाइप' की अनुमति नहीं देता है? ऐसा लगता है कि चूंकि हमारे पास पहले से ही अपरिहार्य 'और म्यूट' है जिसमें 'mut' बाईं ओर दिखाई नहीं दे सकता है, यह कहना अधिक समान है कि' म्यूट 'केवल दाईं ओर दिखाई दे सकता है? –