[Submission] D Slices
eles
eles at eles.com
Sat Jun 11 09:16:34 PDT 2011
> >> Basically, using subtraction in loop conditions is a big no-no.
then... why the compiler allows it? design should eliminate those
"big no-no"s. else, we tend again to "educate users", see the case
for not allowing writing:
while(condition);
and requiring instead
while(condition){}
just because the first was... well, a big no-no (at least from the
maintenance point of view).
next on the list, why not give access to the current index in
"foreach" instruction? while I find nice to write "foreach" as a
simpler way to loop through a collection, sometimes you need to do
some processing function of element's index. yes, there are some
issues for unordered collections (if any) and this could also prevent
some compiler optimizations, maybe.
D:
foreach(item; set) {
// do something to item
}
Go:
for index, value := range someCollection {
// do something to index and value
}
==or==
for index := range someCollection {
// do something to index
}
Go seems to consider index information to be priority over the value
of the item. While this is debatable, I think it should be well to
provide the index information too in foreach loops. Maybe with a
slightly different syntax, such as:
foreach(index; item; set) {
// do something to item
}
what do you think?
More information about the Digitalmars-d
mailing list