Max*_*888 0 allocation vector rust
我有一个程序,其中有很多结构类型,其中有 aVec作为字段,但在大多数情况下,Vec永远不会使用(这些类型位于一个单独的库中,该库事先不知道库用户想要哪种类型添加Vecs)。下面的例子说明了这种情况。我想知道空的 Vec 是否b会被分配,或者编译器是否足够聪明知道它不会被使用,因此不需要分配。我怀疑它仍然会被分配,在这种情况下,我会将 a 包装Vec在 an 中Option,以便可以创建 b 而无需分配 a Vec,从而避免许多不必要的分配。
#[derive(Debug)]
struct Foo {
message: String,
vec: Vec<String>,
}
fn main() {
let a = Foo {
message: "Hello".to_string(),
vec: Vec::new(),
};
dbg!(a.message);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
307 次 |
| 最近记录: |