Associative Array Initializers
Bill Baxter
dnewsgroup at billbaxter.com
Thu Jan 25 23:22:17 PST 2007
Kevin Bealer wrote:
> Bill Baxter wrote:
>> Kevin Bealer wrote:
>>> Bill Baxter wrote:
>>>> Serg Kovrov wrote:
>>>>> Frits van Bommel wrote:
>>>>>> No, that's one of the big missing things.
>>>>>
>>>>> Exactly!
>>>>>
>>>>
>>>> Seems like with tuples now it might be possible to make a function
>>>> that would do the trick:
>>>>
>>>> int[char[]] months = AA("Jan", 1, "Feb", 2, "Mar", 3);
>>>>
>>>> This could be another interesting challenge akin to Andrei's max()
>>>> challenge. Write a function that constructs an AA from it's
>>>> arguments using the "best" types.
>>>>
>>>> For that matter it would be interesting to see a template which
>>>> constructs an array using the best type to hold the arguments (as
>>>> opposed to just the type of the first argument).
>>>>
>>>> --bb
>>>
>>> I don't know why all this syntax is needed; in particular, without
>>> the a.dup, it crashes. I don't know why -- it might be a bug or just
>>> a bad assumption on my part.
>>
>> make it 'inout a', maybe?
>>
>> --bb
>
> I haven't checked to see whether that works - but even if it does, I
> still don't see *why* it's more legal.
>
> Kevin
How about this, though:
foreach(i, a; values) {
static if ((i & 1) == 1) {
rv[ values[i-1] ] = a;
}
}
Seems to work.
--bb
More information about the Digitalmars-d
mailing list