Oliver wrote:
The source code for the standard library comes with the compiler.
If you look in std\array.d, you find this around line 279 (reflowed for
readability):
void put(T, E)(ref T[] a, E e) {
assert(a.length);
a[0] = e; a = a[1 .. $];
}
Would anybody care to explain what this is used for? I find
the example in array.d rather unhelpful.
Example:
----
void main()
{
int[] a = [ 1, 2, 3 ];
int[] b = a;
a.put(5);
assert(a == [ 2, 3 ]);
assert(b == [ 5, 2, 3 ]);
}
You're putting an element in a, but then the first element is moved out
of a and the new one shows up in b? Weird. I guess I don't understand
what a range is.
Jos