Что происходит, когда я звоню std::mem::drop
со ссылкой
Сама ссылка отброшена.
ссылка вместо собственной стоимости
Ссылка - это значение.
Почему я все еще могу использовать k
после его сброса?
Поскольку неизменяемые указатели реализуют Copy
. Вы передаете копию ссылки, и она отбрасывается.
Не drop
не разыскивает ссылку автоматически?
Нет, это не так.
как выглядит реализация Drop
для &str
?
Не существует ни одного справочника, неизменяемого или изменяемого, поэтому эффективно 1 :
impl Drop for &str {
fn drop(&mut self) {}
}
Смотри также:
1 - Как указывает Питер Холл , существует разница между пустой реализацией Drop
и отсутствием реализации Drop
, предоставленной пользователем, но для целей из этого вопроса они одинаковы.