How to initialize a associative array?

Jack Applegame via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Sun Dec 25 00:18:08 PST 2016


On Saturday, 24 December 2016 at 00:55:01 UTC, Yuxuan Shui wrote:
> I tried this:
>
>     immutable int[char] xx = ['Q':0, 'B':1, 'N':2, 'R':3, 
> 'P':4];
>
> And got a "non-constant expression" error (with or without 
> 'immutable').
>
> What's the correct way?

This works:

void main() {
     immutable int[char] xx = ['Q':0, 'B':1, 'N':2, 'R':3, 'P':4];
}

If you want to initialize global variable, then

immutable int[char] xx;
shared static this() {
	xx = ['Q':0, 'B':1, 'N':2, 'R':3, 'P':4];
}



More information about the Digitalmars-d-learn mailing list