如果我想填充数字列表,可以通过执行以下操作使用向量,从而使用堆:
let w = (0..1024).collect::<Vec<_>>();
但是,如果我想避免堆,则必须使用数组。要使用数组,我必须使用循环,这意味着我必须具有可变变量:
let mut w = [0u32; 1024];
for i in 0..1024 {
w[i] = i as u32;
}
是否可以在不使用可变变量的情况下填充数组?
此问题已被标记为重复。我不确定如何将其混淆。
“如何不使用mut来填充数组?”表示如何在不使用可变变量的情况下填充数组。任何mut
,而不仅仅是数组变量本身。
“如何创建和初始化不可变数组?”表示如何创建不可变数组。
答案 0 :(得分:0)
不能。
Iterator
在编译时不能保证任何特定的长度,因此.collect()
无法生成固定大小的数组。
您可以这样做:
let w = w;
随后将绑定重新创建为不可变,或将初始化移至辅助函数。
答案 1 :(得分:-1)
答案是否。 ⠀