Функция forget
Функция forget принимает значение и забывает его.
Она предотвращает вызов деструктора для переданного значения.
Параметром функция принимает значение, которое нужно забыть.
Важно понимать, что эта функция помечена как unsafe,
так как она может привести к утечке памяти.
Синтаксис
unsafe {
std::mem::forget(value);
}
Пример
Давайте создадим вектор и "забудем" его, чтобы предотвратить вызов деструктора:
fn main()
{
let v = vec![1, 2, 3, 4, 5];
unsafe {
std::mem::forget(v);
}
println!("Vector forgotten");
}
Результат выполнения кода:
"Vector forgotten"
Пример
Давайте рассмотрим, как forget предотвращает
вызов деструктора для строки:
fn main()
{
let s = String::from("abcde");
unsafe {
std::mem::forget(s);
}
println!("String forgotten");
}
Результат выполнения кода:
"String forgotten"
Смотрите также
-
ключевое слово
unsafe,
которое позволяет выполнять небезопасные операции -
функция
drop,
которая явно вызывает деструктор для значения -
функция
drop_in_place,
которая вызывает деструктор для значения по указателю -
тип
ManuallyDrop,
который предотвращает автоматический вызов деструктора