|
|
@ -211,9 +211,9 @@ fn main() {
|
|
|
|
println!("Gadget {} owned by {}", gadget.id, gadget.owner.name);
|
|
|
|
println!("Gadget {} owned by {}", gadget.id, gadget.owner.name);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 在 main 函数的最后,gadget_owner,gadget1 和 daget2 都被销毁。
|
|
|
|
// 在 main 函数的最后,gadget_owner,gadget1 和 gadget2 都被销毁。
|
|
|
|
// 具体是,因为这几个结构体之间没有了强引用(`Rc<T>`),所以,当他们销毁的时候。
|
|
|
|
// 具体是,因为这几个结构体之间没有了强引用(`Rc<T>`),所以,当他们销毁的时候。
|
|
|
|
// 首先 gadget1 和 gadget2 被销毁。
|
|
|
|
// 首先 gadget2 和 gadget1 被销毁。
|
|
|
|
// 然后因为 gadget_owner 的引用数量为 0,所以这个对象可以被销毁了。
|
|
|
|
// 然后因为 gadget_owner 的引用数量为 0,所以这个对象可以被销毁了。
|
|
|
|
// 循环引用问题也就避免了
|
|
|
|
// 循环引用问题也就避免了
|
|
|
|
}
|
|
|
|
}
|
|
|
|