本文简要介绍rust语言中 slice.group_by
的用法。
用法
pub fn group_by<F>(&self, pred: F) -> GroupBy<'_, T, F> where F: FnMut(&T, &T) -> bool,
返回切片上的迭代器,使用谓词将它们分开,产生不重叠的元素运行。
谓词在其后的两个元素上调用,这意味着谓词在slice[0]
和slice[1]
上调用,然后在slice[1]
和slice[2]
上调用,依此类推。
例子
#![feature(slice_group_by)]
let slice = &[1, 1, 1, 3, 3, 2, 2, 2];
let mut iter = slice.group_by(|a, b| a == b);
assert_eq!(iter.next(), Some(&[1, 1, 1][..]));
assert_eq!(iter.next(), Some(&[3, 3][..]));
assert_eq!(iter.next(), Some(&[2, 2, 2][..]));
assert_eq!(iter.next(), None);
此方法可用于提取已排序的子切片:
#![feature(slice_group_by)]
let slice = &[1, 1, 2, 3, 2, 3, 2, 3, 4];
let mut iter = slice.group_by(|a, b| a <= b);
assert_eq!(iter.next(), Some(&[1, 1, 2, 3][..]));
assert_eq!(iter.next(), Some(&[2, 3][..]));
assert_eq!(iter.next(), Some(&[2, 3, 4][..]));
assert_eq!(iter.next(), None);
相关用法
- Rust slice.group_by_mut用法及代码示例
- Rust slice.get_unchecked用法及代码示例
- Rust slice.get_mut用法及代码示例
- Rust slice.get_unchecked_mut用法及代码示例
- Rust slice.get用法及代码示例
- Rust slice.sort_unstable_by_key用法及代码示例
- Rust slice.iter_mut用法及代码示例
- Rust slice.windows用法及代码示例
- Rust slice.repeat用法及代码示例
- Rust slice.align_to_mut用法及代码示例
- Rust slice.as_chunks_unchecked用法及代码示例
- Rust slice.fill用法及代码示例
- Rust slice.array_windows用法及代码示例
- Rust slice.sort_unstable_by用法及代码示例
- Rust slice.sort用法及代码示例
- Rust slice.rotate_left用法及代码示例
- Rust slice.as_mut_ptr用法及代码示例
- Rust slice.swap_unchecked用法及代码示例
- Rust slice.split_array_mut用法及代码示例
- Rust slice.contains用法及代码示例
- Rust slice.splitn_mut用法及代码示例
- Rust slice.split_first用法及代码示例
- Rust slice.splitn用法及代码示例
- Rust slice.is_sorted_by_key用法及代码示例
- Rust slice.split_array_ref用法及代码示例
注:本文由纯净天空筛选整理自rust-lang.org大神的英文原创作品 slice.group_by。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。