On Sat, 21 Jun 2014 15:47:03 -0400, Jonathan M Davis via Digitalmars-d
<[email protected]> wrote:
On Sat, 21 Jun 2014 18:50:21 +0000
Xinok via Digitalmars-d <[email protected]> wrote:
On Saturday, 21 June 2014 at 17:17:57 UTC, Suliman wrote:
> Dart and few others modern languages support short declaration
> constructor with parameter:
>
> class Person {
> String name;
>
> Person(String name) {
> this.name = name;
> }
> }
>
> // Shorter alternative
> class Person {
> String name;
>
> // parameters prefixed by 'this.' will assign to
> // instance variables automatically
> Person(this.name);
> }
>
> it's there any DIP for adding this future to D?
I'd prefer that we didn't crowd the language with minor shortcuts
like these, and save syntactic sugar for more useful features.
Plus, it would be easy enough to make a string mixin which
generates such boilerplate code.
Agreed. This would just add more stuff to the language that people would
have
to understand, and it really doesn't add much benefit. It's just a
slightly
terser syntax - and one that doesn't fit in with any other kind of
function
declarations in D to boot.
Yeah, I don't think we save much with this. A mixin should be able to
assign all the names given in the parameters that you name the same way.
In fact, I bet one can write a boiler-plate string that works for ANY
class, using __traits(allMembers), as long as your parameter names match
the member names. Then you just mixin that string as the first thing in
the ctor.
-Steve