này hoạt động vì Iterator
thực hiện rev()
nơi self
là một DoubleEndedIterator
:iterating Xếp trên một & vec so vec.iter()
let vec: Vec<i32> = Vec::new();
for x in vec.iter().rev() {
//Do stuff
}
Tuy nhiên, nếu tôi thay đổi vec.iter().rev()
-&vec.rev()
nó sẽ không biên dịch vì:
no method named `rev` found for type `std::vec::Vec<i32>` in the current scope
Hơn nữa:
the method `rev` exists but the following trait bounds were not satisfied: `std::vec::Vec<i32> : std::iter::Iterator`, `[i32] : std::iter::Iterator`
Nhưng không một vòng lặp for ngầm gọi IntoIterator
? Có phải &vec
hoặc vec.iter()
được coi là thành ngữ Rust?