Thread overview | ||||||
---|---|---|---|---|---|---|
|
November 08, 2015 foreach statement: Are there no Iterators in D? | ||||
---|---|---|---|---|
| ||||
Hello, I am looking for something like the "Iterator" Interface in Java or PHP. Is there something comparable in D that can be used with foreach? Thanks, J.Frank |
November 08, 2015 Re: foreach statement: Are there no Iterators in D? | ||||
---|---|---|---|---|
| ||||
Posted in reply to J.Frank | On 09/11/15 12:40 AM, J.Frank wrote: > Hello, > > I am looking for something like the "Iterator" Interface in Java or PHP. > Is there something comparable in D that can be used with foreach? > > Thanks, > > J.Frank opApply if you want 0 .. N iterations during for a foreach statement and having it reset each time. Otherwise you want ranges :) An input range is more or less an iterator as you would think of it. You only need popFront, front and empty. But here is the "official" interface. http://dlang.org/phobos/std_range_interfaces.html#InputRange You can have structs an an input range, it is quite common since it doesn't allocate. |
November 08, 2015 Re: foreach statement: Are there no Iterators in D? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Rikki Cattermole | On Sunday, 8 November 2015 at 11:47:41 UTC, Rikki Cattermole wrote: > opApply if you want 0 .. N iterations during for a foreach statement and having it reset each time. No, that won't help. I want to be able to iterate over a data set of infinite size. > Otherwise you want ranges :) > > An input range is more or less an iterator as you would think of it. > You only need popFront, front and empty. Ah yes, that's what I missed. Looks good. Thank you. :) |
November 08, 2015 Re: foreach statement: Are there no Iterators in D? | ||||
---|---|---|---|---|
| ||||
Posted in reply to J.Frank | On Sunday, 8 November 2015 at 11:57:16 UTC, J.Frank wrote:
> On Sunday, 8 November 2015 at 11:47:41 UTC, Rikki Cattermole wrote:
>> opApply if you want 0 .. N iterations during for a foreach statement and having it reset each time.
>
> No, that won't help. I want to be able to iterate over a data set of infinite size.
>
>> Otherwise you want ranges :)
>>
>> An input range is more or less an iterator as you would think of it.
>> You only need popFront, front and empty.
>
> Ah yes, that's what I missed. Looks good. Thank you. :)
FWIW since you mentioned Java, if you're accustomed to Java 8 streams they're very similar to D's ranges.
|
Copyright © 1999-2021 by the D Language Foundation