Array initializers and inheritance
smjg_1998 at yahoo.com
Sat Nov 4 06:23:21 PST 2006
Frank Benoit (keinfarbton) wrote:
> I think, the array initialization feature is not so nice. The array
> takes its type from the type of the first initializer. This is
> absolutely ugly.
That's not initialization, that's array literals.
> I would prefer if you can write this
> _gameObjects = new GameObject [ new Player(), new Target(Direction.Up,
> 0, 0)];
That would create a parsing ambiguity.
But I agree that it would be nice if you could give the type of an array
literal explicitly. This syntax was suggested at least once:
_gameObjects = new GameObject!
[ new Player(), new Target(Direction.Up, 0, 0)];
> The second bad thing is, they tend to generate static arrays. So often
> you need to append a  to convert the static array into a dynamic one.
> When generating D code, i use array initialization and cast every member
> to the type of the array element and append  to every such
> initializer. This code looks really ugly.
> @W Please rethink this syntax :)
My thought is that the programmer should have the choice of
implicitly-typed or explicitly-typed array literals. And that
implicitly-typed array literals should be simultaneously of every type
to which every element is implicitly convertible, in much the same way
as string literals are simultaneously of types char, wchar and
dchar. And be simultaneously of static and dynamic array types.
So for example,
[ 42, 0, 6789 ]
would be of the following types:
and that's before you count the floating-point and complex versions....
> Or did I really missed the "good way of array initialization"?
-----BEGIN GEEK CODE BLOCK-----
GCS/M d- s:-@ C++@ a->--- UB@ P+ L E@ W++@ N+++ o K-@ w++@ O? M V? PS-
PE- Y? PGP- t- 5? X? R b DI? D G e++++ h-- r-- !y
------END GEEK CODE BLOCK------
My e-mail is valid but not my primary mailbox. Please keep replies on
the 'group where everyone may benefit.
More information about the Digitalmars-d-learn