मैं त्रुटि नहीं समझता cannot move out of borrowed content। मैंने इसे कई बार प्राप्त किया है और मैंने हमेशा इसे हल किया है, लेकिन मैंने कभी नहीं समझा कि क्यों।
उदाहरण के लिए:
for line in self.xslg_file.iter() {
self.buffer.clear();
for current_char in line.into_bytes().iter() {
self.buffer.push(*current_char as char);
}
println!("{}", line);
}
त्रुटि पैदा करता है:
error[E0507]: cannot move out of borrowed content
--> src/main.rs:31:33
|
31 | for current_char in line.into_bytes().iter() {
| ^^^^ cannot move out of borrowed content
रस्ट के नए संस्करणों में, त्रुटि है
error[E0507]: cannot move out of `*line` which is behind a shared reference
--> src/main.rs:31:33
|
31 | for current_char in line.into_bytes().iter() {
| ^^^^ move occurs because `*line` has type `std::string::String`, which does not implement the `Copy` trait
मैंने इसे क्लोन करके हल किया line:
for current_char in line.clone().into_bytes().iter() {
अन्य पदों को पढ़ने के बाद भी मुझे त्रुटि समझ में नहीं आई:
- फ़ाइल को म्यूट या म्युट सेल्फ नहीं कर सकते (त्रुटि संदेश: उधार ली गई सामग्री से बाहर नहीं जा सकते)
- जंग में एक पेड़ में एक नोड बदलना
इस तरह की त्रुटि का मूल क्या है?
.as_bytes()
as_bytes()क्लोनिंग के बिना काम करता है । लेकिन मुझे अभी भी समझ नहीं आया कि क्यों?
.bytes()विधि की पेशकश करते हैं ।)