當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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