मैं जंग में एक अपरिवर्तनीय वेक्टर में एक परिवर्तनीय वेक्टर को बदलने की कोशिश कर रहा हूं। मुझे लगा कि यह काम करेगा, लेकिन यह नहीं है:जंग जंग परिवर्तनीय संदर्भ कैसे अपरिवर्तनीय बनाने के लिए?
let data = &mut vec![];
let x = data; // I thought x would now be an immutable reference
मैं एक अपरिवर्तनीय बंधन में एक परिवर्तनशील संदर्भ बदल सकते हैं?
हम्म यह कोड एक फ़ंक्शन में है जो 'Vec' देता है। यदि मैं '& * डेटा 'वापस करता हूं तो मुझे एक त्रुटि' अपेक्षित संरचना 'std :: vec :: Vec', संदर्भ मिला' मिलता है। यदि मैं '* डेटा * वापस करता हूं तो मुझे एक त्रुटि मिलती है जो उधारित सामग्री से बाहर नहीं जा सकती है। उधार चेकर के बारे में कुछ और है? जिस तरह से मैंने इसका समाधान किया है, वह 'data.clone() 'वापस लौटना है, लेकिन मैं इसे और अधिक प्रदर्शन करने की कोशिश कर रहा था, लेकिन मुझे लगता है कि मैं उधारकर्ता चेकर को अनुमति नहीं दे सकता क्योंकि मैं फ़ंक्शन में वेक्टर बना रहा हूं। हो सकता है कि मैंने अपने प्रश्न को गलत बताया, लेकिन मैं 'डेटा' से 'Vec ' कैसे प्राप्त कर सकता हूं? –
jbrown
@jbrown लगता है जैसे आप कह रहे हैं कि आप चाहते हैं कि 'म्यूट डेटा = vec! [1, 2, 3]; वापसी डेटा; '। – Shepmaster
हां, यही वह है जिसे मैं ढूंढ रहा था। धन्यवाद। मैं उत्परिवर्तन के बारे में जंग के दस्तावेज़ों को फिर से पढ़ूंगा – jbrown