Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
1203 of 1246 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 для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить