For loops only work with objects that implement the Iterator <http://doc.rust-lang.org/std/iter/trait.Iterator.html> trait.
An array in itself is not an iterator (it doesn't have a "state" as to which element it currently is on), however .iter() gives you an Iter<T> <http://doc.rust-lang.org/std/slice/struct.Iter.html>, which is iterable and has a "state". -Manish Goregaokar On Thu, Jan 1, 2015 at 4:19 PM, Pim Schellart <p.schell...@gmail.com> wrote: > Dear Rust developers, > > I have just started using rust so this is obviously a stupid question but > I was wondering why .iter() is needed when looping over the elements of an > array? In the following example: > > let a = [1i, 2i, 3i]; > > for e in a.iter() { > println!("{}", e); > } > > why can’t one simply write: > > let a = [1i, 2i, 3i]; > > for e in a { > println!("{}", e); > } > > and have the compiler figure out that ‘a’ has ‘.iter()’ and use it? The > form without .iter() just feels more natural to me in this case. > Please feel free to tell me to RTFM or ask this question elsewhere. > > Regards, > > Pim > _______________________________________________ > Rust-dev mailing list > Rust-dev@mozilla.org > https://mail.mozilla.org/listinfo/rust-dev >
_______________________________________________ Rust-dev mailing list Rust-dev@mozilla.org https://mail.mozilla.org/listinfo/rust-dev