April 30, 2011
import std.range;

void main()
{
    int[] a = [1, 2, 3];

    a.put(6);
    assert(a == [2, 3]);

    a.put([1, 2]);
    assert(a.length == 0);
}

Seems kind of odd.. put is implemented as an append method for some custom types, e.g. std.array.appender. But for arrays put just removes Item or RangeLength number of elements from the array. What's the use case for this?

May 02, 2011
On Sat, 30 Apr 2011 00:09:09 -0400, Andrej Mitrovic wrote:

> import std.range;
> 
> void main()
> {
>     int[] a = [1, 2, 3];
> 
>     a.put(6);
>     assert(a == [2, 3]);
> 
>     a.put([1, 2]);
>     assert(a.length == 0);
> }
> 
> Seems kind of odd.. put is implemented as an append method for some custom types, e.g. std.array.appender. But for arrays put just removes Item or RangeLength number of elements from the array. What's the use case for this?

This should probably be in a FAQ somewhere. :)

http://www.digitalmars.com/d/archives/digitalmars/D/ std.array.put_doesn_t_put_106871.html

-Lars
May 02, 2011
Thanks, that post explained it. Obviously I wasn't the first and likely won't be the last person to run into this. Maybe put's documentation could make a note of this.
Top | Discussion index | About this forum | D home