Tôi viết một hàm cho một cấu trúc, trong đó có một Vec
nơi tôi cố gắng để lặp qua Vec
:Iterating thông qua một Vec trong một struct - không thể di chuyển ra khỏi nội dung mượn
struct Object {
pub v: Vec<f32>,
}
impl Object {
pub fn sum(&self) -> f32 {
let mut sum = 0.0;
for e in self.v {
sum += e
}
sum
}
}
Tuy nhiên tôi nhận được như sau lỗi:
error: cannot move out of borrowed content [E0507]
for e in self.v {
^~~~
help: run `rustc --explain E0507` to see a detailed explanation
sự hiểu biết của tôi là kể từ self
được mượn và rằng cho vòng lặp đang cố gắng để di chuyển các yếu tố của v
ra e
?
Từ mã lỗi, tôi đọc rằng giải pháp tiềm năng là sở hữu nhưng tôi không chắc chắn cách thực hiện điều đó.
Tôi không cố gắng sửa đổi véc tơ hoặc các phần tử của véc tơ. Tôi chỉ muốn sử dụng các yếu tố để chạy một số tính toán.
Bạn đã xem ~ 70 [** câu hỏi khác có cùng thông báo lỗi **] (http://stackoverflow.com/search?q=%5Brust%5D+cannot+move + out + of + mượn + nội dung + là% 3Aq)? – Shepmaster