编者注:这个问题早于Rust 1.0,语法和方法从那时起就发生了变化。一些答案解释了Rust 1.0。
我有一个功能,我想修改一个矢量。
fn f(v: &mut Vec<int>) {
v = Vec::from_elem(10 as uint, 0i);
}
fn main() {
let mut v: Vec<int> = Vec::new();
f(&mut v);
}
但这无法编译。具体来说,我想调整v
的大小以包含10个零值元素。我做错了什么?
答案 0 :(得分:3)
编者注:这个答案早于Rust 1.0,不再一定准确。其他答案仍然包含有价值的信息。
您正在寻找grow
方法。
let mut vec = vec![1i,2,3];
vec.grow(4, &10);
println!("{}", vec);
或grow
和clear
的组合。
您可以在此处浏览文档:http://static.rust-lang.org/doc/master/std/vec/struct.Vec.html
答案 1 :(得分:2)