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


Rust slice.rsplit用法及代碼示例


本文簡要介紹rust語言中 slice.rsplit 的用法。

用法

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

返回由匹配 pred 的元素分隔的子切片的迭代器,從切片的末尾開始並向後工作。匹配的元素不包含在子切片中。

例子

let slice = [11, 22, 33, 0, 44, 55];
let mut iter = slice.rsplit(|num| *num == 0);

assert_eq!(iter.next().unwrap(), &[44, 55]);
assert_eq!(iter.next().unwrap(), &[11, 22, 33]);
assert_eq!(iter.next(), None);

split() 一樣,如果第一個或最後一個元素匹配,則空切片將是迭代器返回的第一個(或最後一個)項。

let v = &[0, 1, 1, 2, 3, 5, 8];
let mut it = v.rsplit(|n| *n % 2 == 0);
assert_eq!(it.next().unwrap(), &[]);
assert_eq!(it.next().unwrap(), &[3, 5]);
assert_eq!(it.next().unwrap(), &[1, 1]);
assert_eq!(it.next().unwrap(), &[]);
assert_eq!(it.next(), None);

相關用法


注:本文由純淨天空篩選整理自rust-lang.org大神的英文原創作品 slice.rsplit。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。