Why is this allowed
schveiguy at gmail.com
Wed Jul 1 16:16:31 UTC 2020
On 7/1/20 11:57 AM, 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 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 foo = 0`?
It's important to keep at least something that allows such setting. It
would be reasonable to do this with a function as well.
Is it possible to have the initialization syntax work differently from
the assignment (i.e. allow the initialization as above, but require the
brackets for assignment)?
More information about the Digitalmars-d-learn