오류를 이해하지 못합니다 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
최신 버전의 Rust에서 오류는
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()
방법을 제공합니다 .)