3 ms·
> This pretty much kills "1. 1 char loop counters", which is a good thing. Why do you think this is a good thing ?
by Raphael_Amiard 15y ago
> This pretty much kills "1. 1 char loop counters", which is a good thing.
Why do you think this is a good thing ?
- mattdeboard 15y ago"for node in nodes" is preferred, at least IMO, to "for i in nodes"
- inerte 15y ago"i" as in a counter is almost a standard for any code in any programming language. "i", "j" and "k" (comes from math). If you have the loop counter as "node", then you're doing it wrong, but if you have an actual node, then it's ok.
- kstenerud 15y agoOr, if you want to be sure that a search/replace of a name won't go awry, you could use names such as customerIdx, nodeIdx, accountIdx. It also helps keep things clear in the few cases where you find yourself with nested iterations (so that you don't accidentally call customers[j] when it should have been customers[i]).
- greggman 15y agoI no longer use i as a counter because a few times in my career I've mistaken i for 1 or l.
- mattdeboard 15y agoIf I've got an iterable of Foo object instances, I'll call it "foos". When I iterate, I'll write "for foo in foos" without exception. Calling it i, j or k is fine, too, but I try to be as obvious as possible, because I believe that is a virtue.
- mudetroit 15y ago"for node in nodes" implies you are returning the node itself and not simply a counter. This would seem to fall more under his 1 word for loop variables idea. * NB: I am not certain whether I agree with such rules or not, but that is another discussion point.
- mattdeboard 15y agoYou must be a functional programmer :) My specific example was Python-related; but yes, if I'm using a functional language (or comprehensions in Python) I'm much more inclined to just use i/j/k/x as the counter. But for loops in Python don't return anything of course except in `break` cases.