是否有可能创建技术上可变大小的数组,但这在编译时是已知的?更准确地说,我想做这样的事情:
fn main() {
for n in 1..5 {
let array: [i32; n] = [0; n];
// Do stuff with array
}
}
这段代码不能编译,但我觉得它应该可以编译,因为编译器唯一可以解开for
循环的事情是这样的:
fn main() {
let array: [i32; 1] = [0; 1];
let array: [i32; 2] = [0; 2];
let array: [i32; 3] = [0; 3];
let array: [i32; 4] = [0; 4];
let array: [i32; 5] = [0; 5];
}
它编译并做我想要做的事情,但非常重复
我可以使用向量或其他数据 struct ,但这样我就会在堆中有变量,我认为不应该仅仅因为我在for
循环中使用数组就使用堆