Hatayı anlamıyorum cannot move out of borrowed content
. Birçok kez aldım ve her zaman çözdüm, ama nedenini hiç anlamadım.
Örneğin:
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);
}
şu hatayı üretir:
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
Rust'un yeni sürümlerinde hata şu şekildedir:
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
Klonlayarak çözdüm line
:
for current_char in line.clone().into_bytes().iter() {
Aşağıdaki gibi diğer yayınları okuduktan sonra bile hatayı anlamıyorum:
- & Mut self'den dosya ödünç alamıyorum (hata mesajı: ödünç alınan içerikten çıkarılamaz)
- Rust'ta bir ağaçtaki bir düğümü değiştirme
Bu tür bir hatanın kaynağı nedir?
.as_bytes()
as_bytes()
klonlamadan çalışıyor . Ama hala nedenini anlamıyorum?
.bytes()
yöntemi sunar.)