Функция new
Функция new класса Rc создаёт новый умный указатель
с подсчётом ссылок. Она принимает значение, которое необходимо
разместить в куче, и возвращает экземпляр Rc,
владеющий этим значением. При создании счётчик сильных ссылок
устанавливается в единицу.
Синтаксис
Rc::new(value)
Пример
Давайте создадим умный указатель Rc, содержащий
число 5, и выведем его значение:
use std::rc::Rc;
fn main()
{
let rc = Rc::new(5);
println!("{}", rc);
}
Результат выполнения кода:
5
Пример
Давайте создадим умный указатель Rc, содержащий
строку "abcde", и выведем её значение:
use std::rc::Rc;
fn main()
{
let rc = Rc::new("abcde");
println!("{}", rc);
}
Результат выполнения кода:
"abcde"
Пример
Давайте создадим умный указатель Rc и клонируем его,
чтобы увидеть, как увеличивается счётчик сильных ссылок:
use std::rc::Rc;
fn main()
{
let rc1 = Rc::new(5);
let rc2 = Rc::clone(&rc1);
println!("{}", Rc::strong_count(&rc1));
println!("{}", Rc::strong_count(&rc2));
}
Результат выполнения кода:
2
2
Смотрите также
-
класс
Rc,
который представляет умный указатель с подсчётом ссылок -
метод
clone,
который увеличивает счётчик ссылок и возвращает новый указатель -
метод
strong_count,
который возвращает количество сильных ссылок -
класс
Rc,
который позволяет разделять владение данными между частями программы