Is there a way to map associative arrays
Brian Schott via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Fri Aug 1 17:00:00 PDT 2014
On Friday, 1 August 2014 at 23:33:22 UTC, Freddy wrote:
> On Friday, 1 August 2014 at 23:22:06 UTC, bearophile wrote:
>> Freddy:
>>
>>> uint[uint] test;
>>>
>>> void main(){
>>> test=[0:2 ,1:3 ,2:4];
>>> writeln(test.map!(a=>a-2));
>>> }
>>
>> If you need keys or values you have .keys .values, .byKey,
>> .byValue (the first two are eager). If you need both you are
>> out of luck, and if you want to write safe code it's better to
>> use a foreach loop. If you want to live dangerously you can
>> use a test.byKey.zip(test.byValue).
>>
>> Take a look in Rosettacode, there are examples for all of them.
>>
>> Bye,
>> bearophile
> Sorry, i wasn't very clear.
> I wanted to know if there a way to lazily change the look up
> operation
> eg:
> assert(test[1]==1);
> assert(test[2]==2);
Give your struct/class a method called "opIndex".
http://dlang.org/operatoroverloading.html#Array
More information about the Digitalmars-d-learn
mailing list