Rust · Intermediário · Inglês · Técnico
mem take
Função de std::mem que troca o valor de uma referência mutável pelo Default do tipo e devolve o valor antigo, movendo de dentro de uma referência com segurança.
Onde usar
Resolve o erro 'cannot move out of borrowed content' ao tirar um campo de &mut self. As irmãs são mem::replace e mem::swap.
Em código
use std::mem;
let mut v = vec![1, 2];
let antigo = mem::take(&mut v);
println!("{:?} {:?}", antigo, v);Exemplos
Use mem take to move the buffer out.
Use mem take para tirar o buffer de dentro.
mem take leaves an empty Vec behind.
O mem take deixa um Vec vazio no lugar.
Cuidado
Exige que o tipo implemente Default; sem isso, use mem::replace e passe o valor de substituição.
Sinônimos
mem::take