5 个版本
使用旧的 Rust 2015
0.1.5 | 2018 年 10 月 23 日 |
---|---|
0.1.4 | 2018 年 10 月 22 日 |
0.1.3 | 2018 年 8 月 5 日 |
#2680 在 Rust 模式
1,312 每月下载量
9KB
166 行
rev_slice
rust 切片负索引的简单替代方案
是否曾在 Rust 中想要 a[-1]
?使用这个包,你可以这样操作:a.rev()[0]
。
还提供了其他切片方法,你可以再次使用 .rev()
来获取原始切片。例如,你可以使用 a.rev()[1..].rev()
来移除切片的最后一个元素。
lib.rs
:
提供对切片的反转视图。
使用时,导入 SliceExt
特性以获取切片的 .rev()
和 .rev_mut
扩展方法。然后像处理普通切片一样处理返回的 RevSlice
:索引它、分割它、迭代它等。
示例
extern crate rev_slice;
use rev_slice::SliceExt;
let r = [1, 2, 4, 9, 16, 25].rev();
assert_eq!(r[0], 25);
assert_eq!(r[1..3].rev(), &[9, 16]);
assert_eq!(r.split_first().unwrap().0, &25);
let mut it = r.iter().cloned().skip(2);
assert_eq!(it.next(), Some(9));
assert_eq!(it.next(), Some(4));
assert_eq!(it.next(), Some(2));