刚开始学 Rust,这是一段创建一个原始数组的代码,有更“官方”的实现吗?
int[] arr = new int[10];
for(int i = 0;i < arr.length;i ++)
arr[i] = i;
我捣鼓的 Rust 代码:
fn main() {
let mut arr: [i32; 10] = [0; 10];
for i in 0..arr.len() {
arr[i] = i as i32;
}
}
有个疑问:
1. Rust 的原始数组似乎是没有“new”这种特性,即提前开辟一个空间。必须在声明时同时初始化?假如我如下面这样写:
let mut arr: [i32; 10]; // 仅声明一个数组,未初始化
那么 cargo check 会在 arr[i] = i as i32;处提示数组未初始化,有比我这个更好的写法吗,即数组初始化方法?
(另外吐槽下 Rust 真的很严格,循环里的赋值代码必须写 as i32,好像不准隐式转换 usize 到 i32 。。)