Jarrett Billingsley Wrote: > On Sun, Nov 23, 2008 at 10:48 AM, Sam S E <[EMAIL PROTECTED]> wrote: > > Jarrett Billingsley Wrote: > > > >> On Sat, Nov 22, 2008 at 11:40 PM, Sam S E <[EMAIL PROTECTED]> wrote: > >> > Does foreach use delegates? Isn't that unnecessary overhead? > >> > --Sam > >> > >> It does use delegates, for iterating over most types. When iterating > >> over arrays, the compiler turns it into a sort of for loop instead. > >> > >> Is it unnecessary overhead? It's not always as fast as it could be, > >> but unless someone can figure out some other way of implementing it, > >> it's pretty much the best we can get. > >> > >> How about iterator objects, like in C++ or Java? Are they unnecessary > >> overhead? ;) > > > > Why not just use a normal for loop; wouldn't it be almost as simple as > > token substitution? By 'most types,' do you mean associative arrays or am I > > forgetting something? As a mainly C(++) programmer, I don't use iterators > > when I don't need to. I don't even use classes when I don't need to. > > How do you use a for loop to iterate over an associative array whose > implementation is hidden, or a binary tree, or any arbitrary > container, or a sequence or words in a file, or the zipped contents of > two lists, or... > > The point of foreach isn't performance, it's flexibility and > abstraction. As long as you can make an opApply or function which > takes a delegate, you can use the foreach loop with it. Not > everything is an array.
Where are the docs on opApply?
