7个版本 (4个稳定版)
使用旧的Rust 2015
1.1.0 | 2017年8月26日 |
---|---|
1.0.2 | 2017年6月3日 |
1.0.1 | 2017年1月20日 |
1.0.0 | 2016年12月27日 |
0.1.2 | 2016年12月19日 |
#2049 在 Rust模式
4,912 每月下载量
在 18 个crate中使用 (3个直接使用)
8KB
85 行
init_with
你想要能够通过调用函数来创建每个元素来初始化Rust中的固定数组吗?现在你可以了!
use init_with::InitWith;
let my_array = {
let mut seed = Vec::new();
let mut next_val = 0;
<[Vec<u32>; 3]>::init_with(|| {
seed.push(next_val);
next_val += 1;
seed.clone()
})
};
assert_eq!(my_array, [vec![0], vec![0, 1], vec![0, 1, 2]]);
或者,可以使用 init_with_indices
来更轻松地根据索引创建数组条目
use init_with::InitWith;
let squares = <[usize; 5]>::init_with_indices(|i| i*i);
assert_eq!(squares, [0,1,4,9,16]);
此crate允许你以函数式方式初始化数组元素,同时隐藏执行此操作所需的不可安全代码。
要导入此crate,将以下内容放入你的Cargo.toml
[dependencies]
init_with = "1.1.0"
...并在你的crate根目录中放入以下内容
extern crate init_with;