A few notes on choosing between Go and D for a quick project
Atila Neves via Digitalmars-d
digitalmars-d at puremagic.com
Tue Mar 17 05:51:58 PDT 2015
On Tuesday, 17 March 2015 at 10:31:06 UTC, Almighty Bob wrote:
> On Tuesday, 17 March 2015 at 09:25:57 UTC, Panke wrote:
>>> How do you keep it around if you cant declare a member to
>>> hold it?
>>>
>>> It's all well and good explaining the reason for them but it
>>> doesnt void the fact that they are a PITA if you say want to
>>> use cvsReader to parse some records and keep the results as a
>>> class member.
>>
>> I don't think csvReader supports your point. The input range
>> returned is not for permanent storage,
>
> How do you know it's not meant for permanent storage? The docs
> dont say that. Is that a typical idiom with returned ranges?
>
> And what's the point of an all singing and dancing API if it
> imposes pointless restrictions on the user for the sake of some
> questionable benefit for the library writer?
>
> It's far more useful for csvReader to return a type I know and
> can use than it is to obscure the return type for the sake of
> some philosophical ideal of increasing encapsulation.
>
> In short, for the user, Voldomort types have no benefit and only
> cost.
This discussion happens often when discussing C++'s or D's
`auto`. It doesn't matter what the type is, what matters is in
the interface.
As for storing it:
auto foo = voldemort();
Oh, you meant in a struct?
struct Foo(T) {
T thingie;
}
auto foo(T)(T thingie) {
return Foo!T(thingie);
}
auto f = foo(voldemort());
Atila
More information about the Digitalmars-d
mailing list