5
fn find<P>(&mut self, predicate: P) -> Option<Self::Item>
where P: FnMut(&Self::Item) -> bool
それはself
に変更可能な参照を必要とする理由私は表示されません。誰か説明できますか?
fn find<P>(&mut self, predicate: P) -> Option<Self::Item>
where P: FnMut(&Self::Item) -> bool
それはself
に変更可能な参照を必要とする理由私は表示されません。誰か説明できますか?
イテレータを進めているので、self
を突然変異させることができる必要があります。あなたがnext
を呼び出すたびに、イテレータが変異している:
fn find<P>(&mut self, mut predicate: P) -> Option<Self::Item> where
Self: Sized,
P: FnMut(&Self::Item) -> bool,
{
for x in self.by_ref() {
if predicate(&x) { return Some(x) }
}
None
}
ありがとう:ここ
はthe implementation of
find
です。とても明らか! –