我有以下代码,其中使用了Rc
和Box
,它们之间的区别是什么?哪个更好?
我有这样的代码,同时使用了Rc
和Box
,它们两者之间的区别是什么?哪一个更好呢?
use std::rc::Rc;
fn main() {
let a = Box::new(1);
let a1 = &a;
let a2 = &a;
let b = Rc::new(1);
let b1 = b.clone();
let b2 = b.clone();
println!("{} {}", a1, a2); //=> 1 1
println!("{} {}", b1, b2); //=> 1 1
}
&Box<T>
而是使用&T
。Box实现了Deref<Target=T>
,因此你只需使用&*my_box
就可以得到一个&T
。 - Mingwei Samuel&Box<T>
! - sitaktif