यह काम करता है क्योंकि Iterator
लागू करता rev()
जहां self
एक DoubleEndedIterator
है:रिवर्स बार-बार दोहराना एक और vec बनाम vec.iter()
let vec: Vec<i32> = Vec::new();
for x in vec.iter().rev() {
//Do stuff
}
हालांकि, अगर मैं vec.iter().rev()
&vec.rev()
करने के लिए बदल यह संकलन नहीं करेगा क्योंकि:
इसके अलावाno method named `rev` found for type `std::vec::Vec<i32>` in the current scope
:
the method `rev` exists but the following trait bounds were not satisfied: `std::vec::Vec<i32> : std::iter::Iterator`, `[i32] : std::iter::Iterator`
लेकिन परोक्ष IntoIterator
फोन पाश के लिए नहीं एक है? &vec
या vec.iter()
बेवकूफ जंग माना जाता है?