我应该如何用i32调用Vec :: with_capacity?

时间:2015-02-19 08:11:07

标签: rust

我有一个在堆栈上分配向量的函数。这段代码不起作用:

fn my_func(n: i32) {
    let mut v = Vec::with_capacity(n);
}

编译器说n需要是usize。我认为从类型安全的角度来看这是有道理的,但我需要在其他需要n的计算中使用i32。处理这个问题的正确方法是什么?

1 个答案:

答案 0 :(得分:6)

Cast要使用。

let n: i32 = 4;
let v = Vec::<i16>::with_capacity(n as usize);