On Wednesday, 1 July 2020 at 15:57:24 UTC, Nathan S. wrote:
On Tuesday, 30 June 2020 at 16:22:57 UTC, JN wrote:
Spent some time debugging because I didn't notice it at first,
essentially something like this:
int[3] foo = [1, 2, 3];
foo = 5;
writeln(foo); // 5, 5, 5
Why does such code compile? I don't think this should be
permitted, because it's easy to make a mistake (when you
wanted foo[index] but forgot the []). If someone wants to
assign a value to every element they could do foo[] = 5;
instead which is explicit.
What's your opinion on using that syntax in the initial
declaration, like `float[16] foo = 0`?
I don't like it. I'd prefer:
float[16] foo = [ 0 ];
or
float[16] foo = { 0 };
or
float[16] foo(0);