Frank Benoit escribió:
In Java one can write:
new MyClass().run();
in D this does not compile, parenthesis are needed.
(new MyClass()).run();
But why is the D language designed like that?
I think it's because the (already hated by many, including myself)
ability to invoke a function (or a constructor) without parenthesis.
So:
new MyClass.run
and
new MyClass().run
should be the same, right?
But in the first case MyClass could be a package name and you are
constructing a new "MyClass.run" instance. You could make them behave
differently, but some would say it's not consistent, etc.