Duplicate keys in array literals?
Is it a good idea to silently statically accept duplicated keys in both dynamic array literals and in associative array literals? void main() { int[] a = [0:10, 0:20]; int[int] aa = [0:10, 0:20]; } I don't remember having ever had the need for this, and on the other hand I have had some mistakes like this in my D code not caught statically by the compiler. --- Note that in this post I am not discussing about inserting multiple times a key-pair in an associative array, this is normal and useful: void main() { int[int] aa; aa[0] = 10; aa[0] = 20; } Bye, bearophile
Re: Duplicate keys in array literals?
bearophile bearophileh...@lycos.com wrote in message news:befwnwpitihpcjfbd...@forum.dlang.org... Is it a good idea to silently statically accept duplicated keys in both dynamic array literals and in associative array literals? Looks like a bug to me.
Re: Duplicate keys in array literals?
On 28.11.2013. 12:23, bearophile wrote: Is it a good idea to silently statically accept duplicated keys in both dynamic array literals and in associative array literals? void main() { int[] a = [0:10, 0:20]; int[int] aa = [0:10, 0:20]; } I don't remember having ever had the need for this, and on the other hand I have had some mistakes like this in my D code not caught statically by the compiler. --- Note that in this post I am not discussing about inserting multiple times a key-pair in an associative array, this is normal and useful: void main() { int[int] aa; aa[0] = 10; aa[0] = 20; } Bye, bearophile PHP also allows it: $data = array('a' = 1, 'a' = 2); And I find it to be only a source of bugs.
Re: Duplicate keys in array literals?
28.11.2013 15:23, bearophile пишет: Is it a good idea to silently statically accept duplicated keys in both dynamic array literals and in associative array literals? void main() { int[] a = [0:10, 0:20]; int[int] aa = [0:10, 0:20]; } I don't remember having ever had the need for this, and on the other hand I have had some mistakes like this in my D code not caught statically by the compiler. --- Note that in this post I am not discussing about inserting multiple times a key-pair in an associative array, this is normal and useful: void main() { int[int] aa; aa[0] = 10; aa[0] = 20; } Bye, bearophile File the issue please. -- Денис В. Шеломовский Denis V. Shelomovskij
Re: Duplicate keys in array literals?
On 2013-11-28 18:55, luka8088 wrote: PHP also allows it: $data = array('a' = 1, 'a' = 2); And I find it to be only a source of bugs. Arrays are a weird beast in PHP. They're both arrays and associative arrays, at the same time, somehow. -- /Jacob Carlborg
Re: Duplicate keys in array literals?
On 28.11.2013. 21:01, Jacob Carlborg wrote: On 2013-11-28 18:55, luka8088 wrote: PHP also allows it: $data = array('a' = 1, 'a' = 2); And I find it to be only a source of bugs. Arrays are a weird beast in PHP. They're both arrays and associative arrays, at the same time, somehow. They are associative array which can emulate array like behavior. But unfortunately that has also in my experience turned out to be just another source of bugs.
Re: Duplicate keys in array literals?
Denis Shelomovskij: File the issue please. I have opened an issue, currently it's not an enhancement request: https://d.puremagic.com/issues/show_bug.cgi?id=11637 In that issue I have also added more explanations and more code examples, with an extra small discussion about arrays with strongly typed indexes, that I have never stopped missing in D, being used to them since Delphi. Bye, bearophile