स्थानांतरित करने के लिए कैसे संदर्भ के लिए, मैं जंग 0.7 का उपयोग कर रहा हूँ।एक स्वामित्व सूचक
मैं एक स्वामित्व लिंक्ड सूची का उपयोग कर एक ढेर कार्यान्वयन के लिए कोशिश कर रहा हूँ और मैं मुसीबत में चल रहा हूँ।
trait Stack<T> {
fn push(&mut self, item : T);
fn pop(&mut self) -> Option<T>;
}
enum Chain<T> {
Link(T, ~Chain<T>),
Break
}
impl<T> Stack<T> for ~Chain<T> {
fn push(&mut self, item : T) {
*self = ~Link(item, *self);
}
fn pop(&mut self) -> Option<T> {
None
}
}
मैं rustc stack.rs
करने का प्रयास करते मैं निम्नलिखित त्रुटि मिलती है:
stack.rs:13:28: 13:34 error: cannot move out of dereference of & pointer
stack.rs:13 *self = ~Link(item, *self);
^~~~~~
मैं नहीं जानता कि मैं यह कैसे काबू पाने सकता है या क्या मैं अलग तरह से कर सकता है यह अनुमति देने के लिए। ऐसा लगता है जैसे मैं कामयाब संकेत का उपयोग किए बिना इस डेटा संरचना बनाने के लिए सक्षम होना चाहिए, लेकिन मैं बात इस तरह की पर दस्तावेज़ीकरण का एक बहुत नहीं देखा है। ।
आप 'चेन' स्वीकार किए जाते हैं जवाब की तरह पर विशेषता को लागू करना चाहिए, लेकिन आप की तरह कुछ का उपयोग करके अपने विचार बनाए रख सकते हैं '(, आत्म ब्रेक) जाने पूंछ = std :: util :: की जगह; std :: util :: प्रतिस्थापन (स्वयं, लिंक (आइटम, ~ पूंछ)); '' प्रतिस्थापन' और 'स्वैप' फ़ंक्शन स्वामित्व वाले डेटास्ट्रक्चर के साथ काम करते समय महत्वपूर्ण टूल हैं। –
u0b34a0f6ae