通过迭代器搜索
Iterator::find
是一个函数,它遍历迭代器并搜索满足特定条件的第一个值。如果没有值满足条件,则返回 None
。其签名如下:
pub trait Iterator {
// 被迭代的类型
type Item;
// `find` 接受 `&mut self`,这意味着调用者可能被借用
// 和修改,但不会被消耗。
fn find<P>(&mut self, predicate: P) -> Option<Self::Item> where
// `FnMut` 表示任何捕获的变量最多只能被修改,不能被消耗。
// `&Self::Item` 表示它通过引用将参数传递给闭包。
P: FnMut(&Self::Item) -> bool;
}
Iterator::find
返回元素的引用。如果需获取元素的索引,则使用 Iterator::position
。