digitalmars.D.learn - foreach () processing sequence
- jicman <cabrera wrc.xerox.com> Feb 06 2007
- Kirk McDonald <kirklin.mcdonald gmail.com> Feb 06 2007
- jicman <cabrera wrc.xerox.com> Feb 06 2007
- Johan Granberg <lijat.meREM OVE.gmail.com> Feb 06 2007
- jicman <cabrera wrc.xerox.com> Feb 06 2007
- Carlos Santander <csantander619 gmail.com> Feb 06 2007
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é
Feb 06 2007
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.) -- Kirk McDonald Pyd: Wrapping Python with D http://pyd.dsource.org
Feb 06 2007
== Quote from Kirk McDonald's articlejicman 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
way, will the sequence of execution **ALWAYS** follow the
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�
Yes. An array is an ordered sequence. (As opposed to, say, a hash
which is unordered.)
You're not nitpick, but acurate. :-) Ok, thanks.
Feb 06 2007
jicman wrote:== Quote from Kirk McDonald's articlejicman 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
way, will the sequence of execution **ALWAYS** follow the
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�
Yes. An array is an ordered sequence. (As opposed to, say, a hash
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.
Feb 06 2007
== Quote from Johan Granberg's articlejicman wrote:== Quote from Kirk McDonald's articlejicman 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
way, will the sequence of execution **ALWAYS** follow the
of the array creation? In other words, will the execution of
foreach above always display, bb cc aa 00 11 zz dd Thanks, jos�
Yes. An array is an ordered sequence. (As opposed to, say, a
table,which is unordered.)
You're not nitpick, but acurate. :-) Ok, thanks.
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().
Feb 06 2007
jicman escribió:== Quote from Johan Granberg's articlejicman wrote:== Quote from Kirk McDonald's articlejicman 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
way, will the sequence of execution **ALWAYS** follow the
of the array creation? In other words, will the execution of
foreach above always display, bb cc aa 00 11 zz dd Thanks, jos�
sequence. (As opposed to, say, a
table,which is unordered.)
Ok, thanks.
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().
Check http://www.digitalmars.com/d/statement.html#ForeachStatement :For foreach, the elements for the array are iterated over starting at index 0 and continuing to the maximum of the array. For foreach_reverse, the array elements are visited in the reverse order.
-- Carlos Santander Bernal
Feb 06 2007








Carlos Santander <csantander619 gmail.com>