Ir para o conteúdo
Erros do Compilador RustErro
E0382

E0382 — Uso de Valor Movido

Um valor é utilizado após ter sido movido para outra variável ou função.

rustcargo

O que causa este erro

O sistema de ownership do Rust determina que cada valor possui exatamente um dono. Quando um valor é movido (atribuído a outra variável ou passado a uma função), a variável original não pode mais ser utilizada. Isso se aplica a tipos que não implementam Copy.

Como corrigir

Clone o valor antes de movê-lo caso precise utilizá-lo novamente. Use referências (&T ou &mut T) em vez de transferir o ownership. Implemente o trait Copy para tipos pequenos. Reestruture o código para evitar o uso do valor após a movimentação.

Exemplo

let s = String::from("hi");
let s2 = s;
println!("{}", s);
Documentação Oficial

Códigos de Erro Relacionados