On Sun, 26 Apr 2009 04:17:04 -0400, Daniel Keep
<[email protected]> wrote:
Penguin wrote:
What do you think about:
class Foo {
int a;
float b;
this( member a, member b ) {
}
}
instead of:
class Foo {
int a;
float b;
this( int a, float b ) {
this.a = a;
this.b = b;
}
}
I don't know that saving a few (very simple) lines of code is worth
adding a new keyword and magic behaviour to ctor arguments.
If you really wanted to just do that, you could probably write a mixin
to take care of it.
There are three benefits I see to the proposal:
1. It saves typing. This is not usually a big deal, except that this sort
of constructor is EXTREMELY common with container objects.
2. It saves having to specify the type. We get the same savings from
"auto," it should be similar here. In fact, you could probably change the
keyword "member" to "auto".
3. It's a little more self documenting. You know when you see the
function signature, that what you pass in will at least start being the
initial value of the named member.
The drawback of course is the keyword. the magic behavior is not a
drawback IMO (in fact, it is the point).
If you used auto as the keyword, you don't add a keyword.
I'd vote for it. Of course, I'd rather have inherited constructors first
;)
-Steve