immutable
Steven Schveighoffer
schveiguy at yahoo.com
Wed Jan 26 13:21:45 PST 2011
On Wed, 26 Jan 2011 16:13:41 -0500, Trass3r <un at known.com> wrote:
>>> (readln only uses ~= on buf, it doesn't change the original string)
>>
>> What? Why does it take a ref argument then? If it doesn't overwrite
>> the buffer passed in, there is no point in giving it a buffer.
>
> No I meant it doesn't alter buf's original content, i.e. "hello"
> Of course it modifies the array itself via ~= and thus takes it as a ref.
> Though it should use 'out' instead I think.
Then why not return the newly-created buffer? Why alter the buffer via a
parameter? It makes no sense to me.
Better API:
char[] readln();
or if you want different char types:
C[] readln(C = char)();
I think the original intent was for the code to overwrite the buffer, but
it doesn't take into account the append improvements circa 2.041.
-Steve
More information about the Digitalmars-d
mailing list