Zum Inhalt springen

Rc und Weak

use std::rc::Rc;
fn main() {
let r1 = Rc::new(0);
let r4 = {
let r2 = Rc::clone(&r1);
Rc::downgrade(&r2)
};
let r5 = Rc::clone(&r1);
let r6 = r4.upgrade();
println!("{} {}", Rc::strong_count(&r1), Rc::weak_count(&r1));
}

Die drei starken Referenzen sind r1, r5 und r6. Die eine schwache Referenz ist r4, die am Ende von main gelöscht wird. r2 wird am Ende ihres Gültigkeitsbereichs gelöscht.