2015-11-04 12 views

Antwort

6

Es muss self mutieren können, weil es den Iterator vorrückt. Jedes Mal, wenn Sie next aufrufen, wird der Iterator mutiert:

fn next(&mut self) -> Option<Self::Item>; 

Hier ist the implementation of find:

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 
} 
+0

Dank. So offensichtlich! –

Verwandte Themen