F i L wrote:
foobar wrote:
I'd expect something like:
[ ... ]
Ya, you could always have the Array constructor pass on
construction Parameters as well, and I think your examples make
sense.
On a side note, you could always invoke Arrays, Dynamic Arrays
(Lists), and Associative Arrays (Maps) by name (like every other
object), and use the '[...]' syntax for initializing the size:
auto a = Array(Point(int))[5].new(1, 2); // static
auto l = List(Point(int))[5].new(1, 2); // dynamic
auto m = Map(Point(int), string)[
'one',
'two',
'three',
'four',
'five'
].new(1, 2)
// shorthands:
auto a = [0, 1, 2]; // Array(int)[3]
auto l = [][0, 1, 2]; // List(int)[3]
auto m = ['z':0, 'o':1, 't':2];
// Map(int, string)['z', 'o', 't']
this would have the added benefit of being consistent with
std.containers types, but only the three default one would have
shorthands:
import std.containers;
auto l = List(int)[5]; // object.d
auto sl = SLinked(int)[5]; // std.containers.d
auto dl = DLinked(int)[5]; // std.containers.d
IDK though, just a thought.