मैं त्रुटि नहीं समझता 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()
विधि की पेशकश करते हैं ।)