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

Тип Pin

Тип Pin представляет собой обёртку над указателем, которая гарантирует, что значение, на которое он указывает, не будет перемещено в памяти. Это критически важно для самореферентных структур и асинхронных задач, где перемещение данных может привести к повреждению памяти. Параметром тип принимает указатель P, который должен реализовывать трейт Deref.

Синтаксис

Pin<P>

Пример

Давайте создадим закреплённое значение в куче с помощью Box::pin и получим к нему доступ:

use std::pin::Pin; fn main() { let pinned: Pin<Box<i32>> = Box::pin(12345); println!("{}", pinned); }

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

12345

Пример

Давайте создадим закреплённое значение на стеке с помощью Pin::new и убедимся, что к нему можно получить доступ:

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

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

"abcde"

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

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