Saturday 15 February 2014

rust - Derive Clone for array of something that is Clone? -


यह कोड ()

  std :: sync :: Arc; स्ट्रक्चर फू {x: isize, // वास्तविक कोड में कुछ जटिल, ड्रॉप लागू करता है} # [निकालें (क्लोन)] अच्छा [a: विकल्प & lt; आर्क & lt; फू & gt; & gt ;, बी: विकल्प & lt; आर्क & lt; Foo & gt; & gt; C: विकल्प & lt; आर्क & lt; Foo & gt; & gt ;,} # [निकालने (क्लोन)] स्ट्रेट खराब {x: [विकल्प & lt; Arc & lt; Foo & gt; & gt ;; 3],} fn मुख्य () {println! ("देखें"); 16: 5: 16:29 त्रुटि: विशेषता ``     

  के साथ  

कोर :: मार्कर :: कॉपी` प्रकार 'alloc :: arc :: Arc & lt; Foo & gt; `[E0277] & lt; anon & gt ;: 16 x: [विकल्प & lt; Arc & lt; Foo & gt; & gt;; 3], ^ ~~~~~~~~~~~~~~~~~~~~~~~ & lt; anon & gt;: 14: 10: 14:15 नोट: # [derive_Clone] के विस्तार में

लेकिन अच्छा के साथ इसमें कोई समस्या नहीं है।

  • यह क्यों है,
  • कोई उपाय नहीं है ? मैं 12 स्वतंत्र क्षेत्रों को नियंत्रित करने के लिए बिल्कुल उत्सुक नहीं हूं।

मुद्दा इस में है:

<पूर्व> impl & lt; T & gt; [टी; के लिए क्लोन; 4] जहां टी: कॉपी

इससे वास्तविक प्रश्न बनता है: हमें एक सरणी क्लोन करने के लिए कॉपी की आवश्यकता क्यों है? कहते हैं:

<पूर्व> fn क्लोन (& amp; स्व) - & gt; [टी; $ N] {* self}

वर्तमान में, एक सरणी का एक क्लोन स्रोत सरणी के बिट-बिट-बिट प्रतिलिपि है। एक गहरा क्यों किसी और से अधिक जानकार हो सकता है।


No comments:

Post a Comment