Fri, 22 Jan 2010 15:27:02 -0500, bearophile wrote: > Thank you for your answers Simen kjaeraas. > >>No need for them when we have this: S s = S( 4 );< > > If you have to initialize an array of many structs you have to repeat > the name of the struct many times, this is redundant, and takes more > space (and if you don't use an IDE it needs more time to type): > > struct Vector2 { double x, y; } > > Vector2[] data1 = [{1,2}, {3,4}, {0,1}, {1,2}, {2,3}, {3,4}, {4,5}, > {5,6}, {6,7}, > {7,8}, {8,9}, {9,10}, {10,11}, {11,12}, {12,13}, > {13,14}, {14,15}, {15,16}, {16,17}, {17,18}, {18,19}, > {19,20}]; > > Vector2[] data2 = [Vector2(0,1), Vector2(1,2), Vector2(2,3), > Vector2(3,4), > Vector2(4,5), Vector2(5,6), Vector2(6,7), > Vector2(7,8), Vector2(8,9), Vector2(9,10), > Vector2(10,11), Vector2(11,12), Vector2(12,13), > Vector2(13,14), Vector2(14,15), Vector2(15,16), > Vector2(16,17), Vector2(17,18), Vector2(18,19), > Vector2(19,20)]; > > void main() {}
I'd use something like this in higher level languages™: case class Vector[T](x: T, y: T) val pairs = List( (1,2), (3,4), (0,1), (2,3), (3,4), (4,5) ) val vectors = pairs map { case (a:Int, b:Int) => Vector(a,b) } or class Vector[T](x: T, y: T) { def this(xy: (T,T)) = this(xy._1, xy._2) } val pairs = List( (1,2), (3,4), (0,1), (2,3), (3,4), (4,5) ) val vectors = pairs map (new Vector(_))