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

Метод clone класса Arc

Метод clone класса Arc создает новую сильную ссылку на те же данные, что и исходный указатель. При вызове метода атомарный счетчик сильных ссылок увеличивается на единицу. Метод не принимает параметров и возвращает новый указатель Arc, который указывает на ту же область памяти.

Синтаксис

arc.clone()

Пример

Давайте создадим указатель Arc и клонируем его, а затем проверим счетчик сильных ссылок:

use std::sync::Arc; fn main() { let arc1 = Arc::new(12345); let arc2 = arc1.clone(); println!("arc1 = {}", arc1); println!("arc2 = {}", arc2); println!("strong count = {}", Arc::strong_count(&arc1)); }

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

arc1 = 12345 arc2 = 12345 strong count = 2

Пример

Давайте клонируем указатель Arc несколько раз и передадим копии в разные переменные:

use std::sync::Arc; fn main() { let arc1 = Arc::new("abcde"); let arc2 = arc1.clone(); let arc3 = Arc::clone(&arc1); println!("arc1 = {}", arc1); println!("arc2 = {}", arc2); println!("arc3 = {}", arc3); println!("strong count = {}", Arc::strong_count(&arc1)); }

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

arc1 = abcde arc2 = abcde arc3 = abcde strong count = 3

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

  • класс Arc,
    который представляет собой потокобезопасный указатель с подсчетом ссылок
  • метод new,
    который создает новый указатель Arc
  • метод try_unwrap,
    который пытается извлечь значение, если Arc является единственным владельцем
  • метод downgrade,
    который создает слабую ссылку Weak на данные
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить