Function calls
torhu
no at spam.invalid
Sat Jan 30 15:06:42 PST 2010
On 28.01.2010 21:59, Andrei Alexandrescu wrote:
> How about this:
>
> foreach (line; stdin.byLine()) { ... }
>
> vs.
>
> foreach (line; stdin.byLine) { ... }
>
> How do I choose?
>
I'd say byLine as it's currently implemented in std.stdio is not a
property. It initializes and returns a new ByLine struct each time it's
called. It even has arguments that enables you to configure its return
value differently each time you call it. Nowhere near how it would
behave if it was a field.
A property should at least return the same value if you call it several
times in a row, without doing anything in between that you'd expect to
alter the value.
The fact that using byLine's return value changes the File itself
doesn't change anything. That's a separate issue. Even if byLine was a
field, using it would alter the underlying File.
More information about the Digitalmars-d
mailing list