Rust · Intermediário · Português · Técnico
move parcial
Mover apenas um campo de uma struct ou tupla, deixando os outros no lugar. O valor inteiro deixa de ser utilizável, mas os campos não movidos continuam acessíveis.
Onde usar
Aparece em erros como 'borrow of partially moved value', ao tentar usar a struct inteira depois de tirar um campo dela. Em review, vale a pena emprestar o campo.
Em código
struct P { nome: String, idade: u8 }
let p = P { nome: "Ana".into(), idade: 3 };
let n = p.nome; // move só o campo
println!("{} {}", n, p.idade);Exemplos
Fiz um move parcial do campo nome e a struct ficou inutilizável.
Depois do move parcial, ainda dá para ler a idade.
Cuidado
Não funciona com tipos que implementam Drop, porque o destrutor precisa da struct inteira.
Sinônimos
partial move