O que são semânticas de movimento no Rust?

No Rust, existem duas possibilidades de fazer uma referência

Pedir emprestado, ou seja, faça uma referência, mas não permita a alteração do destino de referência. o& O operador pede emprestada a propriedade de um valor.

Emprestar mutuamente, ou seja, faça uma referência para alterar o destino. o&mut O operador empresta mutuamente a propriedade de um valor.

oDocumentação de ferrugem sobre regras de empréstimo diz:

Primeiro, qualquer empréstimo deve durar um escopo não superior ao do proprietário. Segundo, você pode ter um ou outro desses dois tipos de empréstimos, mas não os dois ao mesmo tempo:

uma ou mais referências (&T) a um recurso,exatamente uma referência mutável (&mut T)

Acredito que tomar uma referência é criar um ponteiro para o valor e acessá-lo pelo ponteiro. Isso pode ser otimizado pelo compilador se houver uma implementação equivalente mais simples.

No entanto, eu não entendo o quemover meios e como é implementado.

Para tipos que implementam oCopy característica significa copiar, por exemplo atribuindo a estrutura membro a partir da fonte ou ummemcpy(). Para estruturas pequenas ou primitivas, esta cópia é eficiente.

E paramover?

Esta pergunta não é uma duplicata deO que são semânticas de movimento? porque Rust e C ++ são linguagens diferentes e a semântica de movimento é diferente entre os dois.

questionAnswers(3)

yourAnswerToTheQuestion