当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Rust slice.split用法及代码示例


本文简要介绍rust语言中 slice.split 的用法。

用法

pub fn split<F>(&self, pred: F) -> Split<'_, T, F> where    F: FnMut(&T) -> bool,

返回由匹配 pred 的元素分隔的子切片的迭代器。匹配的元素不包含在子切片中。

例子

let slice = [10, 40, 33, 20];
let mut iter = slice.split(|num| num % 3 == 0);

assert_eq!(iter.next().unwrap(), &[10, 40]);
assert_eq!(iter.next().unwrap(), &[20]);
assert!(iter.next().is_none());

如果第一个元素匹配,则空切片将是迭代器返回的第一项。同样,如果切片中的最后一个元素匹配,则空切片将是迭代器返回的最后一项:

let slice = [10, 40, 33];
let mut iter = slice.split(|num| num % 3 == 0);

assert_eq!(iter.next().unwrap(), &[10, 40]);
assert_eq!(iter.next().unwrap(), &[]);
assert!(iter.next().is_none());

如果两个匹配的元素直接相邻,则它们之间将出现一个空切片:

let slice = [10, 6, 33, 20];
let mut iter = slice.split(|num| num % 3 == 0);

assert_eq!(iter.next().unwrap(), &[10]);
assert_eq!(iter.next().unwrap(), &[]);
assert_eq!(iter.next().unwrap(), &[20]);
assert!(iter.next().is_none());

相关用法


注:本文由纯净天空筛选整理自rust-lang.org大神的英文原创作品 slice.split。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。