writeln wipes contents of variables ?

Rikki Cattermole via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Thu Jan 21 17:47:19 PST 2016


On 22/01/16 5:45 AM, W.J. wrote:
> On Thursday, 21 January 2016 at 14:36:36 UTC, Rikki Cattermole wrote:
>> On 22/01/16 3:07 AM, W.J. wrote:
>>> On Thursday, 21 January 2016 at 13:15:46 UTC, Rikki Cattermole wrote:
>>>> [...]
>>>
>>>
>>> Thanks for your reply.
>>>
>>> So writeln consumes the values in an InputRange. That leads me to
>>> believe that if I feed an InputRange to foreach, it will consume the
>>> values, too.
>>> Did I get that right ?
>>
>> Correct.
>>
>>> If that's the case, why I can iterate and write the values just fine
>>> using nested foreach loops *and* writeln them afterwards ?
>>> I would expect the foreach loops leaves "step3" in the same state as
>>> writeln does.
>>>
>>> So I'm still a little confused as to how foreach goes about it. I
>>> thought foreach would be iterating an InputRange the same way writeln
>>> does.
>>>
>>> By attaching ".array" to the result of I was under the impression the
>>> result was actually converted to an array.
>>> That seems not to be the case. What I probably got was something like an
>>> array of arrays of groups - which are apparently InputRanges ?
>>>
>>> So, yes, writeln... InputRange... makes perfect sense except for the
>>> foreach case.
>>>
>>> Thanks again for the help :)
>
> After playing around some more and apart from requiring much more
> practice I think this topic can be marked as 'solved'. However, I can't
> seem to find the edit button for my initial post.
>
> Anyways, thanks for your contributions :) Very much appreciated!

Contrary to what it is called in the links, this is a NewsGroup/Mailing 
list and not a forum. So no editing ability :)


More information about the Digitalmars-d-learn mailing list