Rust · Essencial · Inglês · Técnico
move
Transferência de posse de um valor para outro lugar, como uma variável, um argumento ou uma closure. Depois disso, o dono antigo não pode mais usá-lo.
Onde usar
Aparece em erros como 'borrow of moved value' e na palavra-chave move das closures passadas a threads. É o comportamento padrão ao atribuir tipos que não são Copy.
Em código
let v = vec![1, 2, 3];
let h = std::thread::spawn(move || {
println!("{:?}", v);
});
h.join().unwrap();Exemplos
The vector was moved into the closure.
O vetor foi movido para dentro da closure.
You need move here, otherwise the thread borrows it.
Você precisa de move aqui, senão a thread só pega emprestado.
Cuidado
Não é uma cópia profunda nem um clone: os dados no heap ficam onde estão, só a posse muda de mãos.
Sinônimos
transferência de posse
Antônimos
empréstimo