4个版本 (2个破坏性更新)
0.3.0 | 2021年7月1日 |
---|---|
0.2.1 | 2021年5月28日 |
0.2.0 | 2021年5月28日 |
0.1.0 | 2021年5月28日 |
#2828 在 Rust模式
41KB
929 行
iter_columns
轻松遍历列。支持Vecs、Slices和Arrays。
默认情况下禁用了对std::array::IntoIter
的支持,并且仅适用于Rust版本1.51.0及以上。要启用支持,请使用array_into_iter
功能。
[dependencies]
iter_columns = { version = "0.3.0", features = ["array_into_iter"] }
示例
列长度一致
use iter_columns::prelude::*;
fn main() {
let test_data = vec![
vec![1, 2, 3],
vec![4, 5, 6],
];
assert_eq!(test_data.into_iter().columns().collect::<Vec<_>>(), [
[1, 4],
[2, 5],
[3, 6],
]);
}
列长度不一致
use iter_columns::prelude::*;
fn main() {
let test_data = vec![
vec![1, 2], // 2 columns
vec![4, 5, 6], // 3 columns
];
// you can also use iter() or iter_mut() instead of into_iter()
assert_eq!(test_data.iter().columns().collect::<Vec<_>>(), [
vec![&1, &4],
vec![&2, &5],
vec![&6],
]);
}
不一致列长度的替代方案
use iter_columns::prelude::*;
fn main() {
let test_data = vec![
vec![1, 2],
vec![4, 5, 6],
];
// use columns_options() instead of columns()
assert_eq!(test_data.into_iter().columns_options().collect::<Vec<_>>(), [
vec![Some(1), Some(4)],
vec![Some(2), Some(5)],
vec![None, Some(6)],
]);
}