View mode: basic / threaded / horizontal-split · Log in · Help
October 17, 2012
Re: How to define an interator to provide array like behaviour in a class?
> 1. Define opApply (see section labeled "Foreach over Structs 
> and Classes with
> opApply after here: 
> http://dlang.org/statement.html#foreach_with_ranges)
>
> 2. Or make it a range (see 
> http://dlang.org/statement.html#foreach_with_ranges
> and http://ddili.org/ders/d.en/ranges.html ), which would 
> probably be a bad
> idea, since containers really shouldn't be ranges.
>
> 3. Or do what std.container does and overload opSlice which 
> returns a range
> over the container (see 
> http://dlang.org/operatoroverloading.html#Slice and
> http://dlang.org/phobos/std_container.html in addition to the 
> links in #2).
> Overall, this is the best approach.
>
> But regardless of which approach you take, you really should 
> read up on ranges
> if you want to be doing much with D's standard library, and
> http://ddili.org/ders/d.en/ranges.html is the best tutorial on 
> them at this
> point. There's also this recent article by Walter Bright which 
> explains one of
> the main rationales behind ranges:
>
> http://www.drdobbs.com/architecture-and-design/component-programming-in-
> d/240008321
>
> - Jonathan M Davis

Awesome thanks Jonathan! I've read that guide on ranges before 
and they sound very interesting. I'm currently playing with 
recursive collections and opApply works great.
Next ›   Last »
1 2
Top | Discussion index | About this forum | D home