Какова семантика перемещения в Rust?

В Rust есть две возможности взять ссылку

Одолжитьто есть взять ссылку, но не разрешать изменять целевое назначение.& Оператор заимствует собственность из стоимости.

Занимать изменчивото есть взять ссылку для изменения цели.&mut Оператор изменчиво заимствует собственность из стоимости.

Руст документация о правилах заимствования говорит:

Во-первых, любой заем должен длиться в объеме, не превышающем возможности владельца. Во-вторых, у вас может быть один или другой из этих двух видов заимствований, но не оба одновременно:

одна или несколько ссылок (&T) к ресурсу,ровно одна изменяемая ссылка (&mut T).

Я считаю, что взятие ссылки - это создание указателя на значение и доступ к значению по указателю. Это может быть оптимизировано компилятором, если есть более простая эквивалентная реализация.

Однако я не понимаю, чтопереехать значит и как это реализовано.

Для типов, реализующихCopy черта это означает, например, копирование присваивая структуру по элементам из источника, илиmemcpy(), Для небольших структур или для примитивов эта копия эффективна.

И дляпереехать?

Этот вопрос не является дубликатомЧто такое семантика перемещения? потому что Rust и C ++ - это разные языки, и семантика перемещения между ними различна.

Ответы на вопрос(3)

Ваш ответ на вопрос