digitalmars.D.learn - Merging two hashes
- Andrej Mitrovic (14/14) Jan 20 2012 Is there a way to merge the keys from one hash to another (overwriting
- Steven Schveighoffer (5/19) Jan 20 2012 You can in dcollections :)
- Andrej Mitrovic (2/25) 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