本文簡要介紹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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。