Static Associative Array
spir
denis.spir at gmail.com
Sun Mar 6 20:28:04 PST 2011
On 03/07/2011 03:22 AM, Peter Lundgren wrote:
> == Quote from Jonathan M Davis (jmdavisProg at gmx.com)'s article
>> On Sunday 06 March 2011 14:05:04 Peter Lundgren wrote:
>>> Can you define an associative array in a way that can be evaluated at
>>> compile time like you can with non-associative arrays?
>> I'm pretty sure not. I think that it's currently suffering the same fate as stuff
>> like classes and is not yet able to be CTFEed. Some day...
>> - Jonathan M Davis
>
> If not, then what is the D way to initialize a static field of a struct or class a
> la Java's static initializer blocks? I don't mind constructing the associative
> array at run-time if I have to, but I can't afford to do it more than the once needed.
Use the module's <static this () {...}> clause:
int[string] aa;
static this () { aa = ["a":1, "b":2, "c":3]; }
unittest {
foreach (k,v ; aa)
writefln("%s --> %s", k,v);
}
Note: you can have as many such ckauses as you like.
Denis
--
_________________
vita es estrany
spir.wikidot.com
More information about the Digitalmars-d-learn
mailing list