On 03/07/2011 03:22 AM, Peter Lundgren wrote:
== Quote from Jonathan M Davis (jmdavisp...@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

Reply via email to