Associative array mapping strings to strings
Andrew Madigan
amadigan at gmail.com
Fri Apr 14 20:03:58 PDT 2006
Derek Parnell wrote:
> On Sat, 15 Apr 2006 12:41:45 +1000, Andrew Madigan <amadigan at gmail.com>
> wrote:
>
>> There was a post about this earlier, but I can't seem to find an answer.
>> How
>> do I create an associate array mapping strings to strings?
>>
>> I've tried:
>>
>> char[][char[]] strings;
>>
>> ----------------
>>
>> alias char[] string;
>>
>> string[string] strings;
>>
>> Which are of course equivalent. Putting strings into the array is not a
>> problem, however, when I try to retrieve elements I get the following
>> compiler errors:
>>
>> (Code:)
>>
>> char[] headerNames = strings.keys;
>> for (int i = 0; i < headerNames.length; i++) {
>> writefln("%s: %s", headerNames[i], strings[headerNames[i]]);
>> }
>>
>> (Errors:)
>>
>> TestApp.d:9: cannot implicitly convert expression (_aaKeys(strings,8)) of
>> type char[][] to char[]
>> TestApp.d:11: cannot implicitly convert expression (headerNames[i]) of
>> type
>> char to char[]
>>
>> This is gdc 0.17, based on dmd 0.14. I'm trying to compile the 0.18 alpha
>> but it's failing (I'll post about that on the appropriate forum). Is
>> there
>> something wrong with the declaration? Is there a declaration that works?
>
> The .keys in this case is a list of strings not a list of chars. So use
> this ...
>
> char[][] headerNames = strings.keys;
> for (int i = 0; i < headerNames.length; i++) {
> writefln("%s: %s", headerNames[i], strings[headerNames[i]]);
> }
>
>
Yeah, I just realized that as well. Thank you for your quick response. The
code works fine now. Thanks again.
More information about the Digitalmars-d-learn
mailing list