小编boo*_*gie的帖子

Rust 数组从范围或收集初始化

刚开始使用 Rust,我正在尝试一些数组的东西,但遇到了一些困难。第一个问题是初始化。我可以创建一个“空”数组并迭代元素来填充它,但如何从范围初始化?:

let mut arr: [i32; 5] = [0; 5]; // this works
// let mut arr: [i32; 5] = 1..5 //this doesn't
Run Code Online (Sandbox Code Playgroud)

第二个问题是尝试通过 i32 上的数组的简单映射来初始化数组。这不起作用:

let mut arr2: [i32; 5] =  arr.iter().map(|&x| x + 1).collect();
Run Code Online (Sandbox Code Playgroud)

事实上,即使打印(不分配)也不起作用:

println!("{:?}", arr.iter().map(|&x| x + 1).collect());
// the above fails with: "type annotations needed: cannot infer type for type arameter `B` declared on the associated function `collect`"
Run Code Online (Sandbox Code Playgroud)

有什么智慧的话可以提供吗?

arrays iteration rust

13
推荐指数
2
解决办法
2万
查看次数

标签 统计

arrays ×1

iteration ×1

rust ×1