Thread overview | |||||
---|---|---|---|---|---|
|
January 20, 2012 Merging two hashes | ||||
---|---|---|---|---|
| ||||
Is there a way to merge the keys from one hash to another (overwriting any duplicates) without using a foreach loop? E.g.: void main() { int[int] a, b; a[0] = 0; b[1] = 1; b += a; // ? } It's not too hard to write this of course: foreach (key, val; a) b[key] = val; But I'm wondering if an enhancement request is in order, maybe an operator overload, or maybe a special merge function. |
January 20, 2012 Re: Merging two hashes | ||||
---|---|---|---|---|
| ||||
Posted in reply to Andrej Mitrovic | On Fri, 20 Jan 2012 12:46:40 -0500, Andrej Mitrovic <andrej.mitrovich@gmail.com> wrote: > Is there a way to merge the keys from one hash to another (overwriting > any duplicates) without using a foreach loop? E.g.: > > void main() > { > int[int] a, b; > a[0] = 0; > b[1] = 1; > > b += a; // ? > } > > It's not too hard to write this of course: > foreach (key, val; a) > b[key] = val; > > But I'm wondering if an enhancement request is in order, maybe an > operator overload, or maybe a special merge function. You can in dcollections :) http://www.dsource.org/projects/dcollections/browser/branches/d2/dcollections/model/Map.d#L40 -Steve |
January 20, 2012 Re: Merging two hashes | ||||
---|---|---|---|---|
| ||||
Posted in reply to Steven Schveighoffer | Nice!
On 1/20/12, Steven Schveighoffer <schveiguy@yahoo.com> wrote:
> On Fri, 20 Jan 2012 12:46:40 -0500, Andrej Mitrovic <andrej.mitrovich@gmail.com> wrote:
>
>> Is there a way to merge the keys from one hash to another (overwriting any duplicates) without using a foreach loop? E.g.:
>>
>> void main()
>> {
>> int[int] a, b;
>> a[0] = 0;
>> b[1] = 1;
>>
>> b += a; // ?
>> }
>>
>> It's not too hard to write this of course:
>> foreach (key, val; a)
>> b[key] = val;
>>
>> But I'm wondering if an enhancement request is in order, maybe an operator overload, or maybe a special merge function.
>
> You can in dcollections :)
>
> http://www.dsource.org/projects/dcollections/browser/branches/d2/dcollections/model/Map.d#L40
>
> -Steve
>
|
Copyright © 1999-2021 by the D Language Foundation