digitalmars.D.learn - Merging two hashes
- Andrej Mitrovic <andrej.mitrovich gmail.com> Jan 20 2012
- "Steven Schveighoffer" <schveiguy yahoo.com> Jan 20 2012
- Andrej Mitrovic <andrej.mitrovich gmail.com> Jan 20 2012
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.
Jan 20 2012
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
Jan 20 2012
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
Jan 20 2012









"Steven Schveighoffer" <schveiguy yahoo.com> 