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

How should I call Vec::with_capacity with an i32?

我有一个在堆栈上分配向量的函数。此代码无效:

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

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

Cast 使用。

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