【发布时间】:2014-01-11 18:23:15
【问题描述】:
let vec1 = vec![1, 2, 3, 4];
let vec2 = vec![Box::new(1), Box::new(2), Box::new(3), Box::new(4)];
它们之间有什么区别? 我已经在堆上分配了 vec1。那么vec1的所有元素不是也在堆上吗?为什么我需要像在 vec2 中那样在堆上单独分配它们?
【问题讨论】:
-
这里不是 rust 专家,但我认为区别在于
1是值 1,而~1是指向 1 的拥有指针。所以在vec2你只是得到多一层间接
标签: rust