Bug in the array set operator
Chris Miller
chris at dprogramming.com
Thu Jun 22 19:43:19 PDT 2006
On Thu, 22 Jun 2006 21:39:40 -0400, roumen <roumen_member at pathlink.com>
wrote:
> I'm fairly certain that the code below should not work, but it compiles
> and
> works OK. And if I use the "correct" statement a[0..a.length-1] = 0; it
> does not
> set the last element.
>
> import std.stdio;
> private int[5] a = [1, 2, 3, 4, 5];
> void main(char[][] arg)
> {
> foreach (int n; a)
> writef("%d ", n);
> writefln();
>
> a[0..a.length] = 0; // BUG: should be a.length-1
>
> foreach (int n; a)
> writef("%d ", n);
> writefln();
> }
>
>
It's [inclusive..exclusive], so [0..length] is the whole array and [0..0]
is empty.
More information about the Digitalmars-d
mailing list