bewegen Ich bin eine Funktion für eine Struktur zu schreiben, die eine Vec
enthält, wo ich durch die Vec
zu iterieren versuchen:Iterieren durch eine Vec innerhalb einer Struktur - aus geliehenen Inhalte können nicht
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
}
}
Allerdings erhalte ich die folgende Fehler:
error: cannot move out of borrowed content [E0507]
for e in self.v {
^~~~
help: run `rustc --explain E0507` to see a detailed explanation
Mein Verständnis ist, dass, da self
entliehen ist, und dass die für Schleifeniteration versucht, die Elemente der v
hinaus in e
zu bewegen?
Aus dem Fehlercode, habe ich gelesen, dass eine mögliche Lösung ist, Besitz zu übernehmen, aber ich bin nicht ganz sicher, wie das geht.
Ich versuche nicht, den Vektor oder seine Elemente zu ändern. Ich möchte nur die Elemente verwenden, um etwas zu berechnen.
verwenden. Sie haben sich die ~ 70 [** andere Fragen mit der gleichen Fehlermeldung **] (http://stackoverflow.com/search?q=%5Brust%5D+cannot+move) angesehen + out + of + geliehen + content + ist% 3Aq)? – Shepmaster