如何在不使用mut的情况下填充数组?

时间:2019-07-20 15:14:39

标签: arrays rust

如果我想填充数字列表,可以通过执行以下操作使用向量,从而使用堆:

let w = (0..1024).collect::<Vec<_>>();

但是,如果我想避免堆,则必须使用数组。要使用数组,我必须使用循环,这意味着我必须具有可变变量:

let mut w = [0u32; 1024];
for i in 0..1024 {
    w[i] = i as u32;
}

是否可以在不使用可变变量的情况下填充数组?


此问题已被标记为重复。我不确定如何将其混淆。

“如何不使用mut来填充数组?”表示如何在不使用可变变量的情况下填充数组。任何mut,而不仅仅是数组变量本身。

“如何创建和初始化不可变数组?”表示如何创建不可变数组。

2 个答案:

答案 0 :(得分:0)

不能。

Iterator在编译时不能保证任何特定的长度,因此.collect()无法生成固定大小的数组。

您可以这样做:

let w = w;

随后将绑定重新创建为不可变,或将初始化移至辅助函数。

答案 1 :(得分:-1)

答案是。 ⠀