编者注:这个问题早于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个零值元素。我究竟做错了什么?
编者注:这个答案早于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