Iterando através de um Vec dentro de uma estrutura - não é possível sair do conteúdo emprestado
Estou escrevendo uma função para uma estrutura que contém umVec
onde eu tento percorrer oVec
:
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
}
}
No entanto, recebo o seguinte erro:
error[E0507]: cannot move out of borrowed content
--> src/lib.rs:8:18
|
8 | for e in self.v {
| ^^^^ cannot move out of borrowed content
Meu entendimento é que desdeself
é emprestado e que a iteração do loop for está tentando mover os elementos dev
para dentroe
.
Pelo código de erro, eu li que uma solução em potencial é se apropriar, mas não tenho muita certeza de como fazer isso.
Não estou tentando modificar o vetor ou seus elementos. Eu só quero usar os elementos para executar alguma computação.