foreach () processing sequence

jicman cabrera at wrc.xerox.com
Tue Feb 6 12:55:36 PST 2007


== Quote from Johan Granberg's article
> jicman wrote:
> > == Quote from Kirk McDonald's article
> >> jicman wrote:
> >> > Greetings!
> >> >
> >> > Imagine this declarion,
> >> >
> >> > char[] str = ["bb", "cc", "aa", "00", "11", "zz", "dd"];
> >> >
> >> > when I do a,
> >> >
> >> > foreach (char[] s; str)
> >> >   writefln(s);
> >> >
> >> > assuming that the str array has not been touched or altered in
> > any
> >> > way, will the sequence of execution **ALWAYS** follow the
> > sequence
> >> > of the array creation?  In other words, will the execution of
the
> >> > foreach above always display,
> >> >
> >> > bb
> >> > cc
> >> > aa
> >> > 00
> >> > 11
> >> > zz
> >> > dd
> >> >
> >> > Thanks,
> >> >
> >> > jos�
> >> (Nitpick: The type of str is char[][].)
> >> Yes. An array is an ordered sequence. (As opposed to, say, a
hash
> > table,
> >> which is unordered.)
> >
> > You're not nitpick, but acurate. :-)
> >
> > Ok, thanks.
> I have wondered the same in the past. Is it documented somewhere?
otherwise
> I think it should be.

I agree.  I was just going to write a function to make sure that the
the creation sequence was the sequence that it would execute on a
foreach().


More information about the Digitalmars-d-learn mailing list