我应该如何使用 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);
我有一个在堆栈上分配向量的函数。此代码无效:
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);