从文档中可以看出:
pub fn new(x: T) -> Box 在堆上分配内存,然后将 x 放入其中。
但“地点”是一个棘手的词。如果我们写
let arr_boxed = Box::new([0;1000]);
会[0;1000]
在堆上就地初始化吗?
如果我们写
let arr = [0;1000];
let arr_boxed = Box::new(arr);
[0;1000]
编译器是否足够聪明,可以首先在堆上初始化?
从文档中可以看出:
pub fn new(x: T) -> Box 在堆上分配内存,然后将 x 放入其中。
但“地点”是一个棘手的词。如果我们写
let arr_boxed = Box::new([0;1000]);
会[0;1000]
在堆上就地初始化吗?
如果我们写
let arr = [0;1000];
let arr_boxed = Box::new(arr);
[0;1000]
编译器是否足够聪明,可以首先在堆上初始化?