Задать вопрос
@maxim2764

Зачем нужен метод clone() если есть ссылки?

Здравствуйте, я новичок в rust. Не могу понять зачем нужен метод clone() если можно использовать ссылку на объект?
  • Вопрос задан
  • 144 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
bingo347
@bingo347
Crazy on performance...
Метод clone из трейта Clone производит копию некоторого ресурса, мы получаем еще один ресурс во владение. При этом данные не обязательно копируются, логика может быть любой, например Rc и Arc в нем просто увеличивают счетчик ссылок, а ресурс остается одним, разделяя владение на несколько владельцев.
Ссылки ограничены временем жизни ресурса, на который они ссылаются, к тому же менять ресурс мы можем только по уникальной ссылке, а метод clone создаст копию ресурса и отдаст владение этой копией, что позволит этой копии жить дольше, чем исходный ресурс, а так же изменять эту копию независимо от исходного ресурса.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы