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

Функция new класса Pin

Функция new класса Pin создаёт новый экземпляр Pin, который закрепляет переданное значение в его текущем месте в памяти. Параметром функция принимает значение, которое нужно закрепить. После закрепления значение не может быть перемещено, если только оно не реализует трейт Unpin. Функция не является unsafe, поскольку она не нарушает гарантий безопасности, однако класс Pin часто используется в контексте unsafe-кода для работы с самоссылающимися структурами.

Синтаксис

Pin::new(pointer)

Пример

Давайте создадим Pin для целочисленного значения и выведем его на экран:

use std::pin::Pin; fn main() { let value = 12345; let pinned = Pin::new(&value); println!("{}", pinned); }

Результат выполнения кода:

12345

Пример

Давайте создадим Pin для строкового значения и получим ссылку на него:

use std::pin::Pin; fn main() { let value = "abcde"; let pinned = Pin::new(&value); let res = *pinned.get_ref(); println!("{}", res); }

Результат выполнения кода:

"abcde"

Смотрите также

  • класс Pin,
    который закрепляет значение в памяти
  • метод new_unchecked,
    который создаёт Pin без проверки гарантий
  • класс MaybeUninit,
    который представляет возможно неинициализированное значение
  • класс NonNull,
    который представляет ненулевой указатель
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить