РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1241 of 1245 menu

Функция 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,
    который предотвращает автоматический вызов деструктора
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить