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));
}
Erklärung anzeigen

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.